while循环只显示一个结果

I want to show string outside while loop, but it only shows one result.

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

This shows only one result but I need all the results outside the while loop. Could you please help me how is this possible?

Problem :

You are just assigning the result one after again

$myarr = array();

Here, It means you're assigning the array() again and again, which replaces the old value

Solution / What You should do

1. You can assign it to an Array (Good Approach)

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

2. You can concat in each iteration (Bad Approach)

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

Note :

I have given good and bad approach to updating what you should do and what you should not do :)

I am not sure if you want the whole row returned from the query or just a single field.

If its the whole row then try

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

This will give you an array containing n row arrays.