Как отобразить полный список строк в PHP MySQL, используя циклы while, но вне цикла

Здравствуйте, пожалуйста, помогите мне этот код, этот код показывает только последний цикл цикла не заполнен.

$sql = mysql_query("SELECT hash FROM users");
while($row=mysql_fetch_assoc($sql)) {
$url = $row["hash"]."<br />";

}

5b50373f0dbd8ab7fe888060257967f2e0adcbdb

но полный список:

a065e7094234b1c836f9829ca9185a36132ff76f
5b50373f0dbd8ab7fe888060257967f2e0adcbdb

пожалуйста, помогите мне

-2

Решение

Вы можете сделать это одним из трех способов. В настоящее время вы сбрасываете $url на каждой итерации.

$sql = mysql_query("SELECT hash FROM users");
$url = '';
while($row=mysql_fetch_assoc($sql)) {
$url .= $row["hash"] . "<br />";

}

или же

$sql = mysql_query("SELECT hash FROM users");
$url = '';
while($row=mysql_fetch_assoc($sql)) {
echo $row["hash"] . "<br />";

}

или же

$sql = mysql_query("SELECT hash FROM users");
while($row=mysql_fetch_assoc($sql)) {
$url[] = $row["hash"] . "<br />";
}

При таком подходе вам нужно перебирать массив позже, foreach..

2

Другие решения

Это хороший пример использования foreach:

<?php
$sql = mysql_query("SELECT hash FROM users");
$rows = mysql_fetch_assoc($sql);
foreach ($rows as $row) {
$url = $row["hash"]."<br />";
}
?>

Кроме того, вы перезаписываете $url переменная каждая итерация. Либо вставьте каждое значение в массив, либо объедините строку:

<?php
// ...
$urls = '';
$url_list = array();
foreach ($rows as $row) {
$urls .= $row['hash'].'<br>'; // concatenation
$url_list[] = $row['hash']; // add each URL to an array
}
?>

Затем вы можете либо вывести окончательную строку, либо выполнить итерацию по массиву, когда вы хотите вызвать значения.

0

По вопросам рекламы [email protected]