Мне нужно создать 3 столбца HTML в PHP с данными, возвращаемыми из MySQL. Я бы хотел, чтобы данные разделились равномерно между всеми тремя столбцами … Как мне это сделать?
Вы можете попробовать сделать что-то вроде этого:
$result = mysql_query("SELECT value FROM table"); $i = 0; echo '<table><tr>'; while ($row = mysql_fetch_row($result)){ echo '<td>' . $row[0] . '</td>'; if ($i++ == 2) echo '</tr><tr>' } echo '</tr></table>';
обратите внимание, что эта таблица имеет значения, упорядоченные как
1 2 3 4 5 6 7 8 9
Если вы хотите, чтобы это было вертикально
1 4 7 2 5 8 3 6 9
Тогда вы должны сделать что-то вроде
$result = mysql_query("SELECT value FROM table"); $data = Array(); while ($row = mysql_fetch_row($result)) $data[] = $row; for ($i = 0; $i < count($data) / 3; $i++){ echo '<table><tr>'; for ($j = 0; $j < 3; $j++){ echo '<td>' . $data[ $i + $j * 3] . '</td>'; } echo '</tr><tr>' } echo '</tr></table>';
Вы можете создать таблицу HTML, а затем использовать цикл PHP foreach для циклического завершения набора результатов MySQL и поместить каждое поле в свою собственную таблицу. В конце каждой записи, возвращаемой запросом MySQL, завершите строку таблицы и запустите новую.
FFS, пожалуйста, прекратите использовать древние функции mysql_ * и научите других это делать. вместо этого использовать mysqli?
Небольшая деталь, если вы возвращаете больше записей, чем «fetch_row», используйте «break», основываясь на ответе от @Robbie: Разделите данные mysql в 3 столбцах error -3-columns-error