2014-10-16 2 views
1

Я пытаюсь сделать очень, очень простой запрос небольшой базы данных MySQL, используя следующий код (с соответствующими значениями в $ хосте и т.д.):mysqli_fetch_array возвращается только один результатом

$connection = mysqli_connect($host, $user_name, $password, $database); 
if (mysqli_connect_errno($connection)) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($connection, "select university from universities_alpha"); 
$row = mysqli_fetch_array($result); 

echo print_r($result); 
echo '<br><br>'; 
echo print_r($row); 

mysqli_close($connection); 

As вы можете видеть, я распечатал результаты в удобочитаемом образом, получая:

mysqli_result Object ([current_field] => 0 [field_count] => 1 [lengths] => Array ([0] => 19) [num_rows] => 9 [type] => 0) 1 

Array ([0] => Arizona State Univ. [university] => Arizona State Univ.) 1 

Есть несколько примеров университетов в этой колонке, так что я не уверен, что я делаю неправильно.

+0

прочитайте руководство по функциям mysqli. вы помещаете 'fetch_array' в цикл while, потому что он возвращает строки один за другим, пока не вернет null, и цикл завершится. – Felk

ответ

4

mysqli_fetch_array работает указателями каждый раз, когда это называется

Представьте следующее

$result = mysqli_query($connection, "select university from universities_alpha"); 
$row = mysqli_fetch_array($result); // this is the first row 
$row = mysqli_fetch_array($result); // now it's the second row 
$row = mysqli_fetch_array($result); // third row 

Чтобы на самом деле отображать данные так, как вы хотите, я предлагаю вам сделать следующее

$rows = array(); 
$result = mysqli_query($connection, "select university from universities_alpha"); 
while($row = mysqli_fetch_array($result)) $rows[] = $row; 
print_r($rows); 
Смежные вопросы