Отобразить результат запроса в таблице

У меня есть запрос MySQL с более чем 50 результатами возврата. Теперь мне нужно отобразить результаты в таблице с тремя строками и тремя столбцами.

Что-то вроде этого:

<table> <tr> <td>Content</td> <td>Content</td> <td>Content</td> </tr> <tr> <td>Content</td> <td>Content</td> <td>Content</td> </tr> <tr> <td>Content</td> <td>Content</td> <td>Content</td> </tr> </table> 

Я попробовал это с PHP следующим образом:

 $q = "SELECT name, address, content FROM mytable"; $r = mysqli_query($dbc, $q); while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $name = $row['name']; $address = $row['address']; $content = $row['content']; //Create new output $output = "<p>$name</p>"; $output .= "<p>$address</p>"; $output .= "<p>$content</p>"; //Add output to array $mycontent[] = $output; } 

Затем я печатаю массив содержимого в таблице следующим образом:

 <tr> <td><?php echo $mycontent[0]; ?></td> <td><?php echo $mycontent[1]; ?></td> <td><?php echo $mycontent[2]; ?></td> </tr> <tr> <td><?php echo $mycontent[3]; ?></td> <td><?php echo $mycontent[4]; ?></td> <td><?php echo $mycontent[5]; ?></td> </tr> <tr> <td><?php echo $mycontent[6]; ?></td> <td><?php echo $mycontent[7]; ?></td> <td><?php echo $mycontent[8]; ?></td> </tr> 

Используя этот код, я могу отображать только 9 содержимого. Моя проблема в том, что я хочу отображать больше контента. Я собираюсь использовать разбиение на страницы для отображения содержимого; что-то вроде 0-9, 10-18, 19-27 и т. д.

ПРИМЕЧАНИЕ. Я могу выполнить разбиение на страницы.

Надеюсь, кто-то даст мне правильное направление для этого.

Спасибо.

попробуйте что-то вроде:

  echo "<table>"; while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $name = $row['name']; $address = $row['address']; $content = $row['content']; echo "<tr><td>".$name."</td><td>".$address."</td><td>".$content."</td></tr>"; } echo "</table>"; 

этот пример будет печатать в таблице весь результат запроса. если вы хотите ограничить только некоторые результаты, поэтому ограничьте SQL-запрос. например:

  $q = "SELECT name, address, content FROM mytable limit 50"; 

для получения каждого контента, имени, адреса в TD и 3 из моего содержимого (содержимое, имя, адрес) в TR попробуйте следующее:

 $c= mysql_query("select COUNT(name) from mytable"); $n=mysql_fetch_array($c); $maxname= $n[0]; $i=0; $tr=0; echo "<table>"; while ($tr < $maxname) { echo "<tr>"; while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC) and $i<$tr) { $name = $row['name']; $address = $row['address']; $content = $row['content']; echo "<td>".$name." | ".$address." | ".$content."</td>"; $i++; } echo "</tr>"; $tr= $tr+3; } echo "</table>"; 

Вы можете хранить в переменной, если ур планирует использовать ее в функции или вы можете просто распечатать ее. Так или иначе…

 $q = "SELECT name, address, content FROM mytable"; $r = mysqli_query($dbc, $q); $str = "<table>"; while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $str .= "<tr>"; $str .= "<td>" . $row['name'] . "</td>"; $str .= "<td>" . $row['address'] . "</td>"; $str .= "<td>" . $row['content'] . "</td>"; $str .= "</tr>"; } $str .= "</table>" echo $str; 

Вот так!

Попробуйте что-то вроде этого. Он помещает ваши значения в простой в использовании ассоциативный массив. Затем вы просто переходите.

 <?php while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $values[] = array( 'name' => $row['name'], 'address' => $row['address'], 'content' => $row['content'] ); } ?> <table> <?php foreach($values as $v){ echo ' <tr> <td>'.$v['name'].'</td> <td>'.$v['address'].'</td> <td>'.$v['content'].'</td> </tr> '; } ?> </table> 

используйте for -loop для итерации вашего $mycontent -array:

EDIT: мне стало известно, что $mycontent построено иначе, чем я предполагал раньше:

 $h = "<table>"; // we are going to build the table in $h $maxcount = count($mycontent); // get the number of values within the array for ($i = 0;$i < $maxcount;$i++) { // counting $i up from 0 to $maxcount -1 ... $h.= "<tr><td>{$mycontent[$i]}</td></tr>"; // build row } $h.= "</table>"; // close the table echo $h; // echo it 

—> живая демонстрация: http://3v4l.org/g1E1T