Почему mysql возвращает только один результат? - PullRequest
0 голосов
/ 05 октября 2011

У меня есть этот код для отображения комментариев (извините за мой последний вопрос).
Он включен вот так;все переменные находятся на другой странице.

<?php

include("scripts/connect_to_mysql.php");

$tab_kom = "SELECT * FROM komenty WHERE stat_id = '$zdni_id'  ORDER BY id DESC LIMIT 30";
$ukaz = '';
$res_kom = mysql_query($tab_kom);

$pocit = mysql_num_rows($res_kom);
if($pocit > 0) {
    while($row_kom=mysql_fetch_array($res_kom)) {
        $kom_uz_id = $row_kom['uid'];
        $kom_text = $row_kom['text'];
        $stat_id = $row_kom['stat_id'];
    }
    $tab_kom_uz = "SELECT * FROM uzivatele WHERE id = '$kom_uz_id' LIMIT 1";
    $res_kom_uz = mysql_query($tab_kom_uz);
    while($row_kom_uz=mysql_fetch_array($res_kom_uz)){
        $kom_uz_ids = $row_kom_uz['id'];
        $kom_uz_jm = $row_kom_uz['jmeno'];
    }
    $ukaz .=' '.$kom_text . ' ';
}else{
    $ukaz .= '';
}

?>

У меня должно быть два результата с одинаковым идентификатором в переменной $ zdni_id, но отображается только одна.Ты знаешь почему?

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

Попробуйте это

while($row_kom=mysql_fetch_array($res_kom)) {
    $kom_uz_id = $row_kom['uid'];
    $kom_text = $row_kom['text'];
    $stat_id = $row_kom['stat_id'];

    $tab_kom_uz = "SELECT * FROM uzivatele WHERE id = '".$kom_uz_id."' LIMIT 1";
    $res_kom_uz = mysql_query($tab_kom_uz);
    while($row_kom_uz=mysql_fetch_array($res_kom_uz)){
        $kom_uz_ids = $row_kom_uz['id'];
        $kom_uz_jm = $row_kom_uz['jmeno'];
    }
    $ukaz .=' '.$kom_text . ' ';        


}                
0 голосов
/ 05 октября 2011

ваш цикл while перезаписывает данные, поэтому вы просто получаете последний результат, который затем используете в остальной части IF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...