Всем доброго вечера. Посоветуйте что делать в такой ситуации: после всех манипуляций с формой её данные заносятся в базу, а из базы все данные выводятся на странице, страница типа вопрос-ответ. Проблема в том что в БД самый адекватный ключ для вывода сообщений по порядку это Id, но если я удалю какую-нибудь строчку из БД то рушится весь порядок (было 12345 и т.д. стало 1245) и непонятно как с помощью цикла вывести подряд все сообщения из БД при условии что какие-то сообщения могут удаляться Код (Text): for($namberstr=1; isset($namberstr); $namberstr++) { //берём картинку $sl=mysql_query("SELECT logo FROM tab WHERE id_q=$namberstr"); $strlogo=mysql_fetch_assoc($sl); $lg=$strlogo['logo']; //берём имя $sn=mysql_query("SELECT name FROM tab WHERE id_q=$namberstr"); $strname=mysql_fetch_assoc($sn); $nm=$strname['name']; //берём дату $sd=mysql_query("SELECT dt FROM tab WHERE id_q=$namberstr"); $strdate=mysql_fetch_assoc($sd); $dt=$strdate['dt']; //берём вопрос $sq=mysql_query("SELECT qs FROM tab WHERE id_q=$namberstr"); $strqs=mysql_fetch_assoc($sq); $q=$strqs['qs']; //выводим аватарку echo "<img class=kl src=images/icon/$lg>"; //выводим вопрос echo "<div class=kl1><span>$nm</span><h4>$dt</h4><p>$q</p></div>"; }
На сколько мне известно в БД есть такой тип запрос, это получить из базы определённое количество записей например начиная с 50 до 100, т.е. первые 50 будут пропущены, а затем будет получено следующие 50 записей, причем без учета ID, вот сам жду вопрос на этот запрос - viewtopic.php?f=20&t=47813
Код (Text): [LIMIT {[offset,] row_count | row_count OFFSET offset}] LIMIT смещение, количество записей. https://dev.mysql.com/doc/refman/5.0/en/select.html
Да, подобрал запрос, вот: Код (Text): SELECT * FROM `table` WHERE `value` LIKE '%%' LIMIT 6,1 table - имя таблицы value - один из столбцов, он не может быть NULL, а за счет LIKE '%%' он будет выбирать / находить все записи 6 - это позиция с которой искать (речь не идет об ID 6, а о 6-й позиции в самой таблице) 1 - сколько получать записей из БД, т.е. если 1 значит 1 запись, если 10 значит 10. PS Да и еще, где то я читал что очень плохо, не правильно засовывать запросы в БД в цикл.
Но проблема у вас не в этом даже ) Все делается не так, правда я уже совсем забыл синтаксис mysql_* ну да ладно. Код (PHP): $rows = mysql_query("SELECT logo FROM tab"); where($row = mysql_fetch_assoc($rows )) { /* тут уже делаем с массивом что нам нужно, к примеру */ echo $row['logo']; } Добавлено спустя 1 минуту 13 секунд: Выбирать все записи он будет без WHERE. LIKE тут совершенно не нужен.
romach то что нужно. а я всё где-то рядом ходил-бродил) Благодарю. УРА ЗАРАБОТАЛО!!! Код (Text): $rows = mysql_query("SELECT id_q FROM tab"); while($row = mysql_fetch_assoc($rows )) {$tt=$row['id_q']; //берём картинку $sl=mysql_query("SELECT logo FROM tab WHERE id_q=$tt"); $strlogo=mysql_fetch_assoc($sl); $lg=$strlogo['logo']; //берём имя $sn=mysql_query("SELECT name FROM tab WHERE id_q=$tt"); $strname=mysql_fetch_assoc($sn); $nm=$strname['name']; //берём дату $sd=mysql_query("SELECT dt FROM tab WHERE id_q=$tt"); $strdate=mysql_fetch_assoc($sd); $dt=$strdate['dt']; //берём вопрос $sq=mysql_query("SELECT qs FROM tab WHERE id_q=$tt"); $strqs=mysql_fetch_assoc($sq); $q=$strqs['qs']; //вывод аватарки echo "<img class=kl src=images/icon/$lg>"; //вывод вопроса echo "<div class=kl1><span>$nm</span><h4>$dt</h4><p>$q</p></div>"; }