SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.01.2008 14:40:50

Никита
Завсегдатай
Откуда: Тюмень
Зарегистрирован: 15.11.2007
Сообщений: 73

SQL запрос на нахождение рисунка в БД

Здравствуйте)Я не могу выполнить SQL-запрос на определение нахождения рисунка в базе данных.То есть мне надо выяснить имеется ли в определенном столбце фотография.Вот код:

// Формируем SQL-запрос
  $query = "SELECT image_name FROM executors WHERE executor_id LIKE 1";
  // Выполняем SQL-запрос
  $result = mysql_query($query);
  // Проверяем успешность выполнения SQL-запроса
  if(!$result)
{
echo"Фотографии нет";
}
else
{
echo"Имеется фотография";
}

Вместо выборки всегда,независимо от номера executor_id выводится: Имеется фотография.

Неактивен

 

#2 27.01.2008 14:44:20

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: SQL запрос на нахождение рисунка в БД

А чему Вы удивляетесь? Запрос всегда отрабатывает, хотя иногда и пустой smile

http://ru2.php.net/manual/ru/function.m … m-rows.php - вот это Вас спасет.

Неактивен

 

#3 27.01.2008 14:49:34

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

Re: SQL запрос на нахождение рисунка в БД

Здесь некорректно составлен код.
Такое условие проверяет не наличие фотографии, а успешность выполнения запроса (т.е. что запрос без ошибок, есть соединение с сервером и т.п.)
Сказать. есть ли фотография, отсюда совершенно нельзя.

Чтобы получить executor_id, нужен примерно такой код:

$query = "SELECT image_name FROM executors WHERE executor_id LIKE 1";
$result = mysql_query($query);
if(!$result)
{
    echo"Ошибка!<br/>".mysql_error();
}
else
{
    if ($row = mysql_fetch_row($result))
        //
        echo $row['executor_id'];
    else
        echo "Фотографии нет";
}

Неактивен

 

#4 27.01.2008 14:53:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: SQL запрос на нахождение рисунка в БД

Не понял где Вы передаете параметр executor_id.
Приведенный Вами запрос всегда выбирает запись с executor_id = 1.

Неактивен

 

#5 27.01.2008 15:04:08

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

Re: SQL запрос на нахождение рисунка в БД

Кстати, да (а я и не заметил)

Неактивен

 

#6 27.01.2008 15:04:28

Никита
Завсегдатай
Откуда: Тюмень
Зарегистрирован: 15.11.2007
Сообщений: 73

Re: SQL запрос на нахождение рисунка в БД

Я попробовал немного переделать ваш код под себя,но он работает лишь в случае,когда пользователя с нужным id не существует.А когда такой пользователь существует,но у него нет фотографии все равно выводится:Фотография есть.

Код:

$ex=1;
$query = "SELECT image_name FROM executors WHERE executor_id LIKE $ex";
$result = mysql_query($query);
if(!$result)
{
    echo"Ошибка!<br/>".mysql_error();
}
else
{
    if ($row = mysql_fetch_row($result))
        //
        echo "Фотография есть";
    else
        echo "Фотографии нет";
}

Неактивен

 

#7 27.01.2008 15:08:48

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

Re: SQL запрос на нахождение рисунка в БД

Во-первых, Вы код перепутали (мой немножко другой - посмотрите повнимательнее).

Во-вторых, как уже сказал paulus, у Вас всегда выбирается запись с executor_id = 1, т.к. Вы переменной $ex присвоили значение 1.

Неактивен

 

#8 27.01.2008 15:11:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: SQL запрос на нахождение рисунка в БД

вместо   echo "Фотография есть";
нужно    if($row["image_name"]) echo "Фотография есть";

Неактивен

 

#9 27.01.2008 15:11:56

Никита
Завсегдатай
Откуда: Тюмень
Зарегистрирован: 15.11.2007
Сообщений: 73

Re: SQL запрос на нахождение рисунка в БД

Значение переменной $ex я меняю по своему усмитрению,в далнейшем этот параметр будет передаваться через запрос.В вашем коде я просто не понял что означает запись:echo $row['executor_id']; И к тому же она у м6еня не стала работать)

Неактивен

 

#10 27.01.2008 15:22:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: SQL запрос на нахождение рисунка в БД

Стоп стоп стоп. Подумайте еще раз, что Вы выводите. Вы выводите "есть ли
пользователь like 1". Давайте решим, что столбцы Вы назвали правильно - и
тогда все встанет на свои места:

Код:

$ex=1;
$query = "SELECT image_name FROM executors WHERE executor_id=$ex";
$result = mysql_query($query);
if(!$result)
{
    echo"Ошибка!<br/>".mysql_error();
}
else
{
    if ($row = mysql_fetch_assoc($result)) {
        if ($row['image_name'] != '') {
            echo "Фото есть";
        } else {
            echo "Фото нет";
        }
    } else {
        echo "Пользователя нет";
    }
}

Неактивен

 

#11 27.01.2008 15:27:20

Никита
Завсегдатай
Откуда: Тюмень
Зарегистрирован: 15.11.2007
Сообщений: 73

Re: SQL запрос на нахождение рисунка в БД

Бальшое спасиба)Все прекрасно работает)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson