クエリに結果が表示されない

php
クエリに結果が表示されない

このクエリを実行しています。 $ productsの結果は表示されません。

コード:

$sql = "SELECT s*
     FROM Client_agent_approvals caa
     INNER JOIN Subscriptions s ON s.client_id = caa.client_id
     WHERE caa.agent_id = '$id'
     AND s.agent_id <> '$id'";
$result = mysql_query($sql);

$query = mysql_query($sql) or die("Error: " . mysql_error());

if ($result == "") {
    echo "";
}
echo "";


$rows = mysql_num_rows($result);

if ($rows == 0) {
    print("");
} elseif ($rows > 0) {
    while ($row = mysql_fetch_array($query)) {

        $product = $row['product'];

        print("Products they have are: $product");
    }
}

  0  1


ベストアンサー

`s `があります。 「s。」を意味すると思います。 また、doを使用する必要があります…​ クエリの繰り返しの場合:

 $row = mysql_fetch_array($query);

 if(!$row)
 {
     print('no rows');// a more useful message
 }
 else
 {
    do {

        $product = $row['product'];

         print("Products they have are: $product");
     }
     while($row = mysql_fetch_array($query));

 }

`mysql_num_rows`は実際に返されたすべての値をカウントしますが、これはカウントしません。 ほぼ同じ結果を得るために2倍の作業を行っていると言えます。

もちろん、これはすべて、最初に1つ以上の行が返されたことを前提としています。 これをMySQLで直接実行して、何かを取得する必要があることを確認できますか?

1


投稿したコメントの後にコードを編集した場合、それは「インデント」が意味するものではありませんでした。 ループおよびif内のステートメントをインデントして、読みやすくすることができます。

何かを行う前に、$ rowsと$ rowでprint_rを使用してください。 これらの変数で何が起こっているかを確認するのに役立つ場合があります。 http://php.net/manual/en/function.print-r.php

1


タイトルとURLをコピーしました