Я начал изучать PHP и, но в пределах личного проекта я не могу пройти мимо этой проблемы:PHP - выбрать несколько строк из MySQL
Я получил таблицу в MySQL с несколькими строками:
$sql = "SELECT * FROM posts";
$query = mysqli_query($db_conx, $sql);
где таблица выглядит следующим образом:
id header content
-------------------------
10 test3 <p>test</p>
9 test2 <p>test</p>
8 test <p>test</p>
, но когда я запускаю этот код:
if($query) {
$row = mysqli_fetch_row($query);
for($i; $i < count($row); $i++){
echo $row[$i] . " ";
}
}
он выбирает только первую строку, а остальные игнорируются.
Идеальный выход будет массив как:
$dataArray[0][0] = "10"
$dataArray[0][1] = "test3"
$dataArray[0][2] = "<p>test</p>"
$dataArray[1][0] = "9"
$dataArray[1][1] = "test2"
$dataArray[1][2] = "<p>test</p>"
$dataArray[2][0] = "8"
$dataArray[2][1] = "test"
$dataArray[2][2] = "<p>test</p>"
etc;
Можете ли вы помочь мне с этим, и, пожалуйста, объясните мне немного?
PS: Извините за мой английский, это не мой родной язык.
Решение:
Я использовал решение MaggsWeb в:
if($query) {
while($row = mysqli_fetch_assoc($query)){
echo $row['header'];
echo $row['content'];
}
}
, но я изменил его ниже, чтобы сделать его полный и один массив:
$index = 0;
$data = array();
if($query) {
while($row = mysqli_fetch_assoc($query)){
$data[$index][0] = $row['id'];
$data[$index][1] = $row['header'];
$data[$index][2] = $row['content'];
$index++;
}
}
'fetch_row()' делает именно то, что предлагает его название: он извлекает один ** ROW **. Вы зацикливаете отдельные поля в этой строке. –