1

我是使用 php 编码和使用 MySQL 的新手。我无法按 ID 显示类别列表,以便每个类别单独显示为标题。相反,我让它显示一个类别名称,但它只会重复两次相同的类别名称。这是我的代码...

$sql= "SELECT * FROM categories ";
$query = mysql_query($sql); 


while($row = mysql_fetch_array($query))
 {
     $id=$row['id'];
     $cat_name=$row['cat_name'];

 }
 ?>


<ul class="nav nav-list">

 <li class="nav-header"><?php echo $cat_name;?></li>
 <li class="nav-header"><?php echo $cat_name;?></li>
</ul>
4

4 回答 4

0

您可以按原样使用此代码:

$sql= "SELECT * FROM categories ";
$query = mysql_query($sql); ?>

<ul class="nav nav-list">

<?php while($row = mysql_fetch_array($query)) : ?>
    <li class="nav-header"><?php echo $row['cat_name'];?></li>
<?php endwhile; ?>

</ul>

这将遍历您的记录,并且对于每条记录,它将打印一个包含所需数据的整个 li。

请注意,像这样将 PHP 代码与 HTML 代码分开有几个好处。它在您的编辑器中会更好地着色,并且也更容易集成。

于 2013-06-21T20:30:43.467 回答
0
    $sql= "SELECT * FROM categories ";
    $query = mysql_query($sql); 


while($row = mysql_fetch_assoc($query))
 {
 ?>

       <ul class="nav nav-list">

                <li class="nav-header"><?php echo $row['id'];  ?></li>
                <li class="nav-header"><?php echo $row['cat_name']; ?></li>
      </ul>
<?php } ?>
于 2014-04-25T09:33:16.013 回答
0

您的 li 标签位于 while 循环之外。所以 $id 和 $cat_name 只是数据库中的最后一条记录,然后你回显它们两次。这样你就有了两次相同的名字。尝试在循环中回显 li 标签(但不是 ul):

<ul class="nav nav-list">
<?php 
while($row = mysql_fetch_array($query))
 {
     $id=$row['id'];
     $cat_name=$row['cat_name'];

     echo '<li class="nav-header">' .$cat_name. '</li>';
 }
 ?>

</ul>
于 2013-06-21T20:44:29.620 回答
0

您两次打印相同值的原因是因为$cat_name它是一个字符串变量,一次只能保存一个值您可能希望将项目保存为数组并在单独的时间循环,就像这样

<?php
$sql= "SELECT * FROM categories ";
$query = mysql_query($sql); 
$category = array();
while($row = mysql_fetch_array($query))
   {
     $array = array(
        id => $row['id'],
        name => $row['cat_name']
     );
     array_push($category,$array);
   }
 ?>
<ul class="nav nav-list">
<?php 
foreach($category as $c)
   {
     echo '<li class="nav-header">'.$c['name'].'</li>';
   }; 
?>
</ul>
于 2013-06-21T20:54:13.663 回答