2015-06-21 9 views
0

Я хочу показать строку вне цикла while, но это только показывает один результат.Пока цикл показывает только один результат

while($row = $result->fetch_assoc()) { 
    $myarr = array(); 
} 
echo $myarr; 

Это показывает только один результат, но мне нужны все результаты вне цикла while. Не могли бы вы помочь мне, как это возможно?

ответ

1

Проблема:

Вы просто назначая результат один после снова

$myarr = array(); 

Здесь, это означает, что вы снова и снова назначая array(), который заменяет старое значение

Решение/Что вы должны сделать

1. Вы можете назначить его в массив (Хороший подход)

while($row = $result->fetch_assoc()) { 
    $myarr[] = $row['yourdbitem']; // or $row if you want whole row 
} 
print_r($myarr); 

2. Вы можете Concat в каждой итерации (плохой подход)

$somevariable = ''; 
while($row = $result->fetch_assoc()) { 
$somevariable .= $row['yourdbitem']; // or $row if you want whole row 
} 
echo $somevariable 

Примечание:

Я дал хороший и плохой подход к обновлению того, что вы должны делать, и что вы не должны делать :)

2

Я не уверен, что вы хотите, чтобы вся строка была возвращена из запроса или только в одном поле.

Если его весь ряд попробуйте

$myarr = array(); // initialize 
while($row = $result->fetch_assoc()) { 
    $myarr[] = $row; 
} 
print_r($myarr); 

Это даст вам массив, содержащий n строки массива.

Смежные вопросы