我只获取最后一个元素值,就像在我的情况下我试图获得$ 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>';
?>
答案 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
变量,因此在循环之后您拥有最后一条记录。