[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос к базе по двум полям два раза
divine266
Подскажите пожалуйста в чем дело
есть зарос
'SELECT id, text, user FROM sms WHERE (user = '.(int)$_POST['id'].' AND user2 = 50) OR (user = 50 AND user2 = '.(int)$_POST['id'].') AND id > '.(int)$_POST['last'].' ORDER BY -id LIMIT 20'

К примеру в базе запись с макс ID 5, при указании $_POST['last'] = 5, все равно выводится одна запись :( не пойму в чем дело



Спустя 2 минуты, 9 секунд (6.10.2011 - 20:47) alexbel2404 написал(а):
а выводишь как?

Спустя 1 час, 14 минут, 20 секунд (6.10.2011 - 22:02) divine266 написал(а):
while($row = mysql_fetch_assoc($res))
{
$text[] = $row;
}

и потом уже дергаю как надо)) но то уже все работает,

в массив text попадает одна запись с таким запросом по идее не должна

Спустя 16 минут, 58 секунд (6.10.2011 - 22:19) dadli написал(а):
divine266
попробуи цикл
do {

}
while();

Спустя 20 минут, 27 секунд (6.10.2011 - 22:39) divine266 написал(а):
dadli
причем тут циклы, у меня запрос к базе возвращает 1запись, а должен вернуть 0, с циклами нет никакой сложности smile.gif

Спустя 24 минуты, 35 секунд (6.10.2011 - 23:04) dadli написал(а):
divine266

а у переменную $_POST['id'] какая значение есть, тоест счем он равно?

Цитата
причем тут циклы

таблица: table
id
1
2

SELECT id FROM table



виле и до виле показивает разние резултати из етого запроса. (через виле, с один резултатом менше).
просто думал что тебе бил что то такое непанятност smile.gif

Спустя 14 минут, 57 секунд (6.10.2011 - 23:19) divine266 написал(а):
dadli
я указал конкретный пример, в базе 5 записей с id 1,2,3,4,5 в $_POST['id'] передаю 5, должно вернуть 0, а мне возвращается запросом последняя запись с ID = 5

Спустя 5 минут, 47 секунд (6.10.2011 - 23:24) imbalance_hero написал(а):
Открой PMA, напиши отдельно WHERE `id` > 5 и скинь скрин-шоты, что действительно выводится. Второй скрин-шот на содержание таблицы, третий - на структуру.

Спустя 33 минуты, 35 секунд (6.10.2011 - 23:58) Invis1ble написал(а):
divine266
Цитата
я указал конкретный пример, в базе 5 записей с id 1,2,3,4,5 в $_POST['id'] передаю 5, должно вернуть 0, а мне возвращается запросом последняя запись с ID = 5

попробуй
(user = '.(int)$_POST['id'].' AND user2 = 50) OR (user = 50 AND user2 = '.(int)$_POST['id'].')
заключить в дополнительные скобки, если не поможет - значит где-то в другом месте ошибка

Спустя 8 часов, 36 минут, 52 секунды (7.10.2011 - 08:35) linker написал(а):
Логическая ошибка, вот так будет правильно
'...WHERE ((user = '.(int)$_POST['id'].' AND user2 = 50) OR (user = 50 AND user2 = '.(int)$_POST['id'].')) AND id > '.(int)$_POST['last'].' ORDER BY id LIMIT 20'

Спустя 5 часов, 14 минут, 3 секунды (7.10.2011 - 13:49) divine266 написал(а):
linker
Спасибо, все работает как надо wink.gif

Спустя 1 час, 37 минут, 16 секунд (7.10.2011 - 15:26) Invis1ble написал(а):
Я вообще-то о том же написал


_____________
Админы и программисты - люди иного мира.
Быстрый ответ:

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