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
Форумы портала PHP.SU :: Версия для печати :: Как вывести данные из базы в три столбца
Форумы портала PHP.SU » » Работа с СУБД » Как вывести данные из базы в три столбца

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

1. Ejik - 18 Мая, 2011 - 20:11:56 - перейти к сообщению
Всем привет!!!!
Нужна помощь, не знаю, как написать скрипт, который выводил бы на страницу данные в три колонки, то есть в каждую ячейку выводилась строка из базы.
Вот как это реализовать ума не приложу. Подскажите, с чего начать?
2. EuGen - 18 Мая, 2011 - 20:16:19 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $rData=mysql_query('SELECT field0, field1, field2 FROM `table`');
  2. echo("<table>");
  3. echo("<tr>");
  4. echo("<th>field0</th>");
  5. echo("<th>field1</th>");
  6. echo("<th>field2</th>");
  7. echo("</tr>");
  8. while($rgRow=mysql_fetch_array($rData))
  9. {
  10.    echo("<tr>");
  11.    echo("<td>".$rgRow['field0']."</td>");
  12.    echo("<td>".$rgRow['field1']."</td>");
  13.    echo("<td>".$rgRow['field2']."</td>");
  14.    echo("</tr>");
  15. };
  16. echo("</table>");
3. Ejik - 19 Мая, 2011 - 07:22:44 - перейти к сообщению
EuGen, Извиняюсь, наверно не правильно сформировал вопрос.
По пробую снова объяснить. Например в базе есть семь записей. На страницу они выводятся так
PHP:
скопировать код в буфер обмена
  1.  
  2. <table align=center border=0 bordercolor=#006633 cellpadding=20 cellspacing=0>
  3. <tr>
  4. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  5. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  6. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  7. </tr>
  8. <tr>
  9. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  10. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  11. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  12. </tr>
  13. <tr>
  14. <td>Картина: ".$z['name']."<br />Автор: ".$z['author']."<br />Родитель: ".$z['parent']."</td>
  15. </tr>
  16. </table>
4. DeepVarvar - 19 Мая, 2011 - 07:34:22 - перейти к сообщению
Ejik пишет:
апример в базе есть семь записей. На страницу они выводятся так

И что? Так сложно в приведенном EuGenом примере в цикл всунуть счет до трех и вывод <tr>???
5. Alex_pac - 19 Мая, 2011 - 07:51:48 - перейти к сообщению
DeepVarvar пишет:
И что? Так сложно в приведенном EuGenом примере в цикл всунуть счет до трех и вывод <tr>???


так сложно, можно сначало данные из mysql упаковать в двумерный массив, а потом выводить.
ИМХО так логичней и гибче. получение данных отдельно, вывод отдельно. никакого смешения.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function mysql_read($query) {
  4.         $res = mysql_query($query);
  5.         while ($row=mysql_fetch_row($res)) { $ret[]=$row; }
  6.         if (isset($ret)) { return $ret; }
  7.         return false;
  8. }
  9.  
  10. //здесь какой то код или рассчеты
  11.  
  12. $rData=mysql_read('SELECT field0, field1, field2 FROM `table`');
  13.  
  14. //здесь какой то код или рассчеты
  15.  
  16. if ($rData) {
  17.  
  18. //здесь какой то код или рассчеты
  19.  
  20. //выводим данные
  21. print '<table border=1>
  22.         <tr><td>field0</td>
  23.                 <td>field1</td>
  24.                 <td>field2</td></tr>';
  25. foreach($rData as $row) {
  26.         print '<tr>';
  27.         foreach($row as $col) {
  28.                 print '<td>'.$col.'</td>';
  29.         }
  30.         print '</tr>';
  31. } print '</table>';
  32.  
  33. } else {
  34.  
  35. print 'пустая страница, нет данных';
  36. }
  37.  
  38.  
  39.  

 

Powered by ExBB FM 1.0 RC1