![]() |
|
Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте)Я не могу выполнить 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 выводится: Имеется фотография.
Неактивен

А чему Вы удивляетесь? Запрос всегда отрабатывает, хотя иногда и пустой ![]()
http://ru2.php.net/manual/ru/function.m … m-rows.php - вот это Вас спасет.
Неактивен

Здесь некорректно составлен код.
Такое условие проверяет не наличие фотографии, а успешность выполнения запроса (т.е. что запрос без ошибок, есть соединение с сервером и т.п.)
Сказать. есть ли фотография, отсюда совершенно нельзя.
Чтобы получить 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 "Фотографии нет";
}
Неактивен

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

Кстати, да (а я и не заметил)
Неактивен
Я попробовал немного переделать ваш код под себя,но он работает лишь в случае,когда пользователя с нужным 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 "Фотографии нет";
}Неактивен

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

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

Стоп стоп стоп. Подумайте еще раз, что Вы выводите. Вы выводите "есть ли
пользователь 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 "Пользователя нет";
}
}Неактивен
Бальшое спасиба)Все прекрасно работает)
Неактивен