当向其添加“WHERE”条件时,查询不返回结果

时间:2010-06-22 21:04:53

标签: php mysql

以下查询未返回任何结果。我从一个正在运行的查询中复制了它,唯一不同的是添加了以下条件:

  

WHERE submissionid = $ submissionid

为什么此查询未返回任何结果的任何想法?

$sqlStr2 = "SELECT 
                s.loginid
                ,s.title
                ,s.url
                ,s.displayurl
                ,s.datesubmitted
                ,l.username
                ,s.submissionid
                ,COUNT(c.commentid) countComments
             FROM submission s
            INNER JOIN login l ON s.loginid = l.loginid
       LEFT OUTER JOIN comment c ON s.submissionid = c.submissionid
              GROUP BY s.submissionid
             WHERE submissionid=$submissionid
             ORDER BY s.datesubmitted DESC
             LIMIT 10";

$tzFrom2 = new DateTimeZone('America/New_York'); 
$tzTo2 = new DateTimeZone('America/Phoenix'); 

$result2 = mysql_query($sqlStr2);

$arr2 = array(); 
echo "<table class=\"samplesrec\">";
while ($row2 = mysql_fetch_array($result2)) { 
    $dt2 = new DateTime($row2["datesubmitted"], $tzFrom2); 
    $dt2->setTimezone($tzTo2);
    echo '<tr>';
    echo '<td class="sitename1"><a href="http://www.'.$row2["url"].'" TARGET="_blank">'.$row2["title"].'</a>  <div class="dispurl">'.$row2["displayurl"].'</div></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td class="sitename2name">Submitted by <a href="http://www...com/.../members/index.php?profile='.$row2["username"].'">'.$row2["username"].'</a> on '.$dt2->format('F j, Y &\nb\sp &\nb\sp g:i a').'</td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td class="sitename2"><a href="http://www...com/.../comments/index.php?submissionid='.$row2["submissionid"].'">'.$row2["countComments"].' comments</a></td>';
    echo '</tr>';
    }
echo "</table>";

5 个答案:

答案 0 :(得分:4)

只是预感,但你确定有任何符合条件的行吗?

WHERE submissionid=$submissionid

另外,您是否检查了$ submissionid的值,以确保在查询没有返回任何行时知道其中的内容?

答案 1 :(得分:3)

  • c.submissionids.submissionid - 也许你应该在你的查询中说明你想要使用哪一个。示例:WHERE s.submissionid=$submissionid
  • 我认为GROUP BY应该遵循WHERE条款。

答案 2 :(得分:2)

试试这个:

$ result2 = mysql_query($ sqlStrt2)或die(“Error”.mysql_error());

查看查询是否存在问题。

答案 3 :(得分:0)

我真的不使用php,但看起来它可能没有填充变量。也许这样做:

WHERE submissionid=".$submissionid."

确保打印$sqlStr2以查看它是什么。

答案 4 :(得分:0)

您的查询$sqlStr2并未安静。首先请保持安静,我想这WHERE submissionid=$submissionid应该喜欢WHERE submissionid=\'$submissionid\'。