0

这是我的代码:

$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会话中,它们是数据库中存在的许多记录。

4

3 回答 3

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";
}
于 2012-12-10T07:44:34.753 回答
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';
}
于 2012-12-10T07:28:58.967 回答
-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/>";
}
?>
于 2012-12-10T07:31:21.693 回答