Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как избавится от дублей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
deloest
Отправлено: 30 Января, 2011 - 21:09:10
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)

[+]


всем привет!
столкнулся с проблемой

вывожу через for() один и тот же запрос несколько раз

к примеру такой запрос: select `id` from `table` where `cat` = '1' limit 3
вывод: 1 / 2 / 3

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

как сделать чтобы каждый запрос выводил уникальную информацию, т.е. нужно так чтобы не выводил те ID которые уже были выведены в предыдущем запросе...
 
 Top
SAD Модератор
Отправлено: 30 Января, 2011 - 21:18:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




order by rand используйте, и дописать where id not in(тут через запятую ваши предыдущие id)
 
 Top
deloest
Отправлено: 30 Января, 2011 - 21:42:45
Post Id


Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)

[+]


SAD, большое спасибо друхх Улыбка
перед запросом поставил переменную

$idd = "0";

после каждой for

$idd.= ", ИД СТРОКИ";

все работает отлично, но чует мое сердце что это че попало, можно как нибудь полуше это реализовать?

(Отредактировано автором: 30 Января, 2011 - 21:44:49)

 
 Top
SAD Модератор
Отправлено: 31 Января, 2011 - 07:55:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Вообще делать в цикле запросы не очень гуд. Опишите то, что вы делаете. приведите пример кода, авось что и придумаем.
 
 Top
XelaNimed
Отправлено: 03 Февраля, 2011 - 00:24:41
Post Id


Частый гость


Покинул форум
Сообщений всего: 136
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




Извиняюсь... Не совсем понял, что именно нужно, но случаем LIMIT не поможет?!
PHP:
скопировать код в буфер обмена
  1. for($limit = 3, $start = 0; /* условие к примеру $start < $maxID */; $start +=3 ){
  2.  // Ваш запрос
  3.  // select `id` from `table` where `cat` = '1' limit $start, $limit
  4. }
 
 Top
OrmaJever
Отправлено: 03 Февраля, 2011 - 01:25:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Может
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `id` FROM `table` WHERE `id` >  $start, `cat` = '1' LIMIT $start, $limit


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB