[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск максимального значения с условием
Владимир55
Требуется найти в таблице максимальное значение столбца time при условии, что в столбце ip есть определенное значение.

		$res = mysql_query("SELECT MAX(time) as 'max' FROM input_information WHERE ip = $ip ");
while($row = mysql_fetch_assoc($res))
$time_old = $row['max'];

Выводит сообщение:
Цитата
Предупреждение: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given


Как это сделать правильно?
Valick
Цитата (Владимир55 @ 27.02.2016 - 19:01)

Как это сделать правильно?

для начала с одинарными кавычками поаккуратнее, для выделения названий таблиц и полей используются обратные кавычки

_____________
Стимулятор ~yoomoney - 41001303250491
Владимир55
Спасибо за замечание!

Так корректнее:
		$res = mysql_query("SELECT MAX(`time`) as 'max' FROM `input_information` WHERE ip = $ip ");
while($row = mysql_fetch_assoc($res))
$time_old = $row['max'];


Но результат прежний.
Invis1ble
Цитата
На форуме: 4 года, 10 месяцев, 19 дней

когда вы уже научитесь поиском пользоваться? только на этом форуме уже обсуждалось раз эдак 1000

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Владимир55
С пяти часов роюсь. То есть, уже три часа. 100500 кодов пересмотрел, но не встретил работающего должным образом.
Владимир55
Это шутка такая?

Вы туда сами взгляните, ради смеха.
Invis1ble
ага, шутка
сижу ржу как поехавший

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Valick
Цитата (Владимир55 @ 27.02.2016 - 19:17)
as 'max'

вот эти кавыки

_____________
Стимулятор ~yoomoney - 41001303250491
Владимир55
Я код взял из сети, кавыки оказались не идеальными.

Спасибо за замечание, кавычки поправил.

Но код-то все равно не работает.
Владимир55
В сети есть пример:

SELECT MAX(`id`) FROM `table` WHERE `uid`='36';


Делаю по аналогии:
		$res = mysql_query("SELECT MAX (`time`) FROM `input_information`
WHERE `ip` = '188.166.91.5'"
);
while($row = mysql_fetch_assoc($res))
$time_old = $row['time'];


И получаю все то же диагностическое сообщение:
Цитата
Предупреждение: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given


(Такой IP адрес в базе имеется.)
SerginhoLD
у тебя в $res попадает false походу, где-то косяк в запросе, поля/таблицы нет например
$res = mysql_query("запрос") or die(mysql_error());

или просто например из-за того что после MAX пробел стоит, а это функция, никаких пробелов не должно быть

_____________
"internet explorer всех правильней отображает страницы" ©
Valick
Владимир55, не упрощайте оформление и не усложняйте себе жизнь.
1) Используйте переменную для тела запроса.
$query = "SELECT MAX(`time`) as `max` FROM `input_information` WHERE `ip` = '$ip' ";

это поможет проконтролировать сам запрос
echo $query;

2) На этапе отладки используйте конструкцию or die() для вывода ошибки MySQL
$res = mysql_query($query) or die(myssql_error());

3) Проверяйте существование дескриптора соединения
if($res){

4) Проверяйте существование результата выборки
if(mysql_num_rows($res) > 0){

5) И только после этого забирайте результат запроса
while($row = mysql_fetch_assoc($res))
$time_old = $row['max'];
}
}


_____________
Стимулятор ~yoomoney - 41001303250491
Arh
Владимир55
Цитата
'max'

Продолжай писать в кавычках, псевдоним это не поле и должно выделятся на фоне имён полей, что бы не ломать голову от куда там несуществующие поле берётся.
user posted image

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Владимир55
Valick, я давно хотел разобраться с правильным синтаксисом, но, поскольку часто брал примеры из сети, то это получалось не очень хорошо.

Надеюсь, что теперь будет лучше.

Большое Вам спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.