Запрос не возвращает результаты, когда к нему добавлено условие «ГДЕ»

0

Запрос ниже не возвращает никаких результатов. Я скопировал его из запроса, который работал, и единственным отличием является добавление следующего условия:

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>";
  • 0
    Чем меньше усилий требуется для чтения вашего кода, тем проще и быстрее нам помочь. Просьба не использовать форматирование вкладки в будущем.
Теги:

5 ответов

3
Лучший ответ
  • Есть c.submissionid и s.submissionid - возможно, вы должны указать в своем запросе тот, который вы хотите использовать. Пример: WHERE s.submissionid=$submissionid
  • Я думаю, что GROUP BY должен идти после предложения WHERE.
  • 0
    Спасибо за отличный ответ.
4

Просто догадка, но уверены ли вы, что есть какие-либо строки, которые соответствуют этому условию?

WHERE submissionid=$submissionid

Кроме того, вы проверили значение $submissionid, чтобы убедиться, что знаете, что в нем, когда запрос не возвращает строки?

2

Попробуйте следующее:

$result2 = mysql_query ($ sqlStrt2) или die ( "Ошибка". mysql_error());

Чтобы узнать, есть ли проблема с запросом.

0

ваш запрос $sqlStr2 не будет quieted.it будет полезно спокойно все fisrt, и я думаю, что это WHERE submissionid=$submissionid должно понравиться это WHERE submissionid=\'$submissionid\ '.

  • 0
    Избегать кавычек не нужно, потому что заключающие в кавычки являются двойными, а не одиночными.
  • 0
    Я практиковался с этими цитатами, и запрос может быть отклонен без кавычек, особенно если он цифровой.
0

Я действительно не использую php, но похоже, что это может не быть заполнением переменной. Так что, возможно:

WHERE submissionid=".$submissionid."

Чтобы убедиться, что распечатайте $sqlStr2, чтобы узнать, что это такое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню