【发布时间】:2011-06-03 18:46:46
【问题描述】:
名字几乎说明了一切——
我有一个数组,我想对数组中的每个项目运行一个查询
两个变量来自于此,卷和页码——卷包含在数组中,我需要为每个卷提取相应的页码
这是我的代码:
$volsArr = array(1, 2, 3, 4);
foreach ($volsArr as $volume) {
$pages = mysql_query("SELECT page FROM $table WHERE vol = '$volume' LIMIT 1");
if (!$pages) { die("Query to show fields from table failed"); }
while($row = mysql_fetch_array($pages)) {
$page = $row['page'];
}
echo 'volume is '.$volume.'';
echo 'page is '.$page.'';
}
我无法弄清楚我遇到了什么问题,我得到这样的输出:
音量为 1 页面为 40
(这对第 1 卷来说是正确的)
音量为 2 页面为 40
(页码应为 8)
音量为 3 页面为 40
(页面应该再次不同)
等等……
我在关闭循环之前尝试了unset($page),但这似乎没有任何作用,请帮忙!
我还尝试移动回声,使它们位于 while($row...) 循环内,但这只会为我提供数组中第一项的输出......
【问题讨论】:
-
根据你的更新,原因是:Rows does not exist where vol in ('2','3','4')
-
尝试在 while 循环中回显 $page。
-
另外,由于查询中的“LIMIT 1”,您实际上并不需要 while 循环;只需使用 mysql_fetch_assoc ($result) 一次即可获得该单行。然后,您可以使用 mysql_num_rows ($result) 检查查询是否返回任何内容。编辑:对不起,在获取之前使用 mysql_num_rows。