Как отобразить результат в списке, используя php

0

Я хочу напечатать результат 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>

лайк:-

.Манго

.Яблоко

.Банан

  • 1
    $hh внутри вашего цикла while. Вам нужно вывести его внутри цикла while.
  • 0
    Поместите ul вне цикла while и добавьте li внутри цикла
Теги:

4 ответа

1
Лучший ответ

Генерация 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>
1
<?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>";
?>
  • 0
    Спасибо за ответ.
1

$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>";
?>
  • 0
    Спасибо за ответ.
  • 0
    Пожалуйста.
0

Проблема в том, что $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
  • 0
    Мой плохой, обновлю это - хороший момент @Cid

Ещё вопросы

Сообщество Overcoder
Наверх
Меню