我有一个类似于以下内容的表(第一行是列):
|section | col1 | col2 |
|----------------------|
|bananas | val | val2 |
|----------------------|
|peaches | val | val2 |
使用一些代码来检查节值是否与数组中的某个值匹配:
$sectionscope = Array('bananas', 'apples');
$sections = mysql_query("SELECT section FROM table WHERE col1=val AND col2=val2");
if (mysql_num_rows($sections)) {
$i = 0;
while ($row = mysql_fetch_array($sections)) {
if (in_array($row[$i], $sectionscope)) {
$section = $sectionscope[array_search($row[$i], $sectionscope)];
$section_is_valid = 1;
}
$i++;
}
}
如果我使用echo $ row [$ i]回显while循环的输出,它会给我:bananas
从PHPmyadmin中进行选择可以正常工作
你能告诉我这里我做错了什么吗? 谢谢,
关于SystemError
答案 0 :(得分:2)
为什么在while循环中递增$i
。您的查询将返回两行,当您循环显示结果时,您每次都可以使用section
访问$row[0]
值。
while ($row = mysql_fetch_array($sections)) {
echo $row[0];
}
这将打印bananas
和peaches
。
在您的代码中,当您第二次进入while循环时,您尝试使用section
检索$row[1]
值(因为您的$i
已增加到1),这将是null,因为您的查询结果只包含一列。