这是我的代码:
$campagin_id = $_SESSION['campagin_id_for_camp'];
$query = "SELECT * FROM survey_result where campagin_id = ".$campagin_id;
$conn=mysql_connect($dbconfig['db_hostname'],$dbconfig['db_username'],$dbconfig['db_password']) or die(mysql_error());
mysql_select_db($dbconfig['db_name'],$conn);
$exec_query =mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($exec_query);
echo "<br> row = ".$row;
while ($row=mysql_fetch_array($exec_query)){
echo "I am In";
}
问题是我在$row
没有得到任何内容我无法进入while循环,当我尝试echo
$row
的值时没有任何显示,没有错误没有。你能帮我在我的代码中找到问题吗?
Ps:数据库是他们的。我已检查查询$campagin_id
的相应值。当我试图回应$exec_query
时,它回应了这一点:资源ID#8
PPS:数据库每个id有超过7条记录,所以如果我在进入while循环之前多次调用mysql_fetch_array($ exec_query)并不重要。对于会话中的$campagin_id
,它们是数据库中存在的许多记录。
答案 0 :(得分:3)
您已撰写$row=mysql_fetch_array($exec_query)
,然后您echo
某事。而你在使用它时也是如此。
而不是:
$row=mysql_fetch_array($exec_query);
echo "<br> row = ".$row;
while ($row=mysql_fetch_array($exec_query)){
echo "I am In";
}
使用此功能(据我所知,您在使用之前不应使用$row=mysql_fetch_array()
):
while ($row=mysql_fetch_array($exec_query)){
echo "I am In";
}
答案 1 :(得分:2)
如果查询返回Resource id #8
,则表示它成功 - 即没有错误。该查询可能没有返回任何行,因此表中没有与给定campagin_id
匹配的行。
你也是分别调用mysql_fetch_array()
两次,你不应该这样做,因为你的while循环会跳过第一行,因为调用它会将结果集中的指针向前移动一个。
如果你想看到数组的内容使用print_r()
或var_dump()
,你也无法回复数组。
我建议添加一些代码来处理找不到的行:
if($exec_query && mysql_num_rows($exec_query) > 0)
{
while ($row=mysql_fetch_array($exec_query)){
echo "Row: " . print_r($row, true);
}
}
else
{
echo 'None found';
}
答案 2 :(得分:-1)
试试这段代码。
<?
$campagin_id = $_SESSION['campagin_id_for_camp'];
$query = "SELECT * FROM survey_result where campagin_id = ".$campagin_id;
mysql_connect($dbconfig['db_hostname'],$dbconfig['db_username'],$dbconfig['db_password']) or die(mysql_error());
mysql_select_db($dbconfig['db_name']);
$exec_query =mysql_query($query) or die(mysql_error());
while ($row=mysql_fetch_assoc($exec_query)) {
echo "<br/> row = <pre>".print_r($row)."</pre><br/>";
}
?>