Я хочу напечатать результат sql в списке используя php.
<?php
$query="select name from plant ";
$q=mysqli_query($con,$query)or die("Could Not Perform the Query");
while ($row = $q->fetch_assoc()) {
$hh=$row['name'];
}
?>
<ul id="myUL">
<li><a href="#"><?php echo $hh ?></a></li>
</ul>
лайк:-
.Манго
.Яблоко
.Банан
Генерация HTML в цикле for
<?php
$query="select name from plant ";
$q=mysqli_query($con,$query)or die("Could Not Perform the Query");
$hh = ''; //empty string first
while ($row = $q->fetch_assoc())
{
$hh .= '<li><a href="#">' . $row['name'] . '</a></li>';
// ^--------------------- concat with the previous result
}
?>
<ul id="myUL">
<?php echo $hh ?> //display
</ul>
<?php
$query="select name from plant ";
$q=mysqli_query($con,$query)or die("Could Not Perform the Query");
echo "<ul id="myUL">";
while ($row = $q->fetch_assoc()) {
echo "<li> <a href='#'>".$row['name']."</a></li>";
}
echo "</ul>";
?>
$hh
будет последним извлеченным значением, потому что оно перезаписывается в каждом цикле цикла. Вы должны добавить к этому вместо этого. Взгляните на это:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
$query = "SELECT name FROM tablename";
$query = mysqli_query($con, $query)or die("Failed to fetch data");
$lis = "";
// as long as row is not empty
while ($row = $q->fetch_assoc()) {
$lis .= "<li> <a href='#'>".$row['name']."</a></li>";
}
echo "<ul>$lis</ul>";
?>
Проблема в том, что $hh
всегда является последней строкой, так while($row = $q->fetch_assoc())
over записывает значение переменной в каждую строку.
Чтобы вывести значение столбца в каждой строке, вам нужно поместить вывод внутри цикла while: он сделает это один раз для каждой записи.
Вы можете использовать условные операторы для удобства чтения:
<!-- Start of List -->
<ul id="myUL">
<?php
$query = "select name from plant ";
$q = mysqli_query($con,$query) or die("Could Not Perform the Query");
while ($row = $q->fetch_assoc()):
?>
<!-- Option -->
<li><a href="#"><?= $row['name']; ?></a></li>
<?php endwhile; ?>
</ul>
<!-- End of List -->
Как указано в комментариях @Cid, каждый элемент должен быть добавлен в список. Держите свой <ul>
вне цикла.
В псевдокоде, чтобы вы могли лучше понять, это будет выглядеть так:
list
foreach row do:
output option
end foreach
end list
$hh
внутри вашего цикла while. Вам нужно вывести его внутри цикла while.ul
вне цикла while и добавьтеli
внутри цикла