查询未显示结果

时间:2011-08-18 21:04:56

标签: php

我在做这个查询。它没有向我显示$ product中的结果。

代码:

$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");
    }
}

2 个答案:

答案 0 :(得分:1)

你有s*。我想你的意思是s.*。您还应该使用do ... while进行查询迭代:

 $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实际上计算了返回的所有值,但事实并非如此。你几乎可以说它为同样的结果做了两倍的工作。

当然,所有这些都假设有一行或多行返回。你可以直接在MySQL中运行它来确认你应该得到什么吗?

答案 1 :(得分:1)

如果您在刚刚发布的评论之后编辑了代码,那么“缩进”并不意味着什么。你可以缩进循环中的语句,如果是为了使它更具可读性。

尝试在$ rows和$ row上使用print_r,然后再对它们执行任何操作。它可以帮助您了解这些变量的变化。 http://php.net/manual/en/function.print-r.php