仅获取最后一个记录值

时间:2014-12-15 07:25:40

标签: php

我只获取最后一个元素值,就像在我的情况下我试图获得$ dwnld_name的值

但不知道我在哪里丢失,所以只获取最后一条记录的下载名称

 <?php 
     global $cat_id;
     $dwnld_sql = "SELECT * FROM wp_dm_downloads";
     $dwnld_qry = mysql_query($dwnld_sql);
       while($dwnld_row = mysql_fetch_array($dwnld_qry)){
          echo $link = $dwnld_row['link'];
          echo $dwnld_name = $dwnld_row['name'];
        $cat_id = $dwnld_row['category'];
      }
    ?>        

    <?php
        $sql = "SELECT * FROM wp_dm_category";
        $myquery = mysql_query($sql);
          echo '<ul>';
              while($row = mysql_fetch_array($myquery)){
                   $x = $row['name'];
                   echo $x_id = $row['id'];
      ?>
             <li><a href="#"><?php echo $x; ?>
           <?php if($x_id == $cat_id) { ?>
              <ul>
             <li><?php echo $dwnld_name; ?></li>
              </ul>
         <?php } ?>
           </a></li>
           <?php echo "<br/>";
                 }
             echo '</ul>';
          ?>

2 个答案:

答案 0 :(得分:1)

这是因为,您正在从字符串循环中获取值。

每次循环运行时,它会按最近的值覆盖值。

您可以创建一个数组并为其附加值,并使用foreach

循环遍历该数组

更正后的代码:

<?php 
global $cat_id;
$dwnld_sql = "SELECT * FROM wp_dm_downloads";
$dwnld_qry = mysql_query($dwnld_sql);
$downloads = array();
 while($dwnld_row = mysql_fetch_array($dwnld_qry)){
        $downloads['link'] = $dwnld_row['link'];
        $downloads['dwnld_name'] = $dwnld_row['name'];
    $downloads['cat_id'] = $dwnld_row['category'];
}
?>  

现在,循环遍历$downloads数组。

注意:不要使用mysql_函数它们已被弃用,将在未来的PHP版本中删除。

答案 1 :(得分:0)

您需要在循环中回显$dwnld_name,或将名称保存到数组中。

使用此解决方案,您可以在每个循环中覆盖$dwnld_name变量,因此在循环之后您拥有最后一条记录。