mysql_fetch_array()没有吐出任何东西

时间:2012-12-10 07:18:36

标签: php

这是我的代码:

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

3 个答案:

答案 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/>";
}
?>