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つ以上のレコードがあるため、しばらくする前に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

また、別々に2回呼び出しmysql_fetch_array()ています。これを呼び出すと、結果セット内のポインターが1つ先に移動するため、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 に答える