簡體   English   中英

echo僅對一個id有效兩次,但對另一個id不起作用

[英]echo works twice just for one id but doesn't for the other one

桌上有2個條目。 但是它回顯3個條目,但回響兩次其中之一。 如果我將其從DESC更改為ASC,則它將回顯其他兩次。 如果我使用“ where id <> 5”,那么它只會回顯一次id 6。 但這是一個動態網站,所以...而且我在另一頁上使用了完全相同的代碼,並且可以正常工作。 這是完整的代碼:

<?php
$cek = mysql_query('select id,isim,aciklama,tarih from galeri where dil = '.$dbDil.' order by id desc');
while($kaynak = mysql_fetch_assoc($cek)){
    $cekG = mysql_query('select resim_url from galeriresim where galeriID = '.$kaynak['id'].' order by id desc');
    $galeri .= '<h1 class="sayfaBaslik fl"><span>'.$kaynak['tarih'].'</span> '.$kaynak['isim'].'</h1>';
    $galeri .= '<h2 class="sayfaAciklama fl">'.$kaynak['aciklama'].'</h2>';
    $galeri .= '<div class="sayfaIcerik" style="width:100%">';
    $galeri .= '<div class="galeriH fl swiper-container-'.$kaynak['id'].'">';
    $galeri .= '<ul class="fl swiper-wrapper-'.$kaynak['id'].'">';
    while($kaynakG = mysql_fetch_assoc($cekG)){
           $galeri .= '<li class="swiper-slide-'.$kaynak['id'].'"><img src="'.$yol.'images/galeri/'.$kaynak['id'].'/'.$kaynakG['resim_url'].'" /></li>';
    }
    $galeri .= '</ul></div></div>';
    $galeri .='<script>';
    $galeri .= 'var mySwiper = new Swiper(\'.swiper-container-'.$kaynak['id'].'\',{';
    $galeri .= 'moveStartThreshold : 75,';
    $galeri .= 'wrapperClass : "swiper-wrapper-'.$kaynak['id'].'",';
    $galeri .= 'slideClass : "swiper-slide-'.$kaynak['id'].'"';
    $galeri .= '});';
    $galeri .= '</script>';
    echo $galeri;
}       
?>

你做你最后的回聲的主要while()循環:

while(..) {
   while(..) { .. }
   echo ..
}

它應該是

while(..) {
   while(..) { .. }
}
echo ..

由於您在主循環中回顯,因此您將多次運行該回$galeri ,並在構建$galeri吐出。

嘗試這個:
我添加了mysq_free_result,並且echo必須在while之外!

<?php
    $cek = mysql_query('select id,isim,aciklama,tarih from galeri where dil = '.$dbDil.' order by id desc');
    while($kaynak = mysql_fetch_assoc($cek)){
        $cekG = mysql_query('select resim_url from galeriresim where galeriID = '.$kaynak['id'].' order by id desc');
        $galeri .= '<h1 class="sayfaBaslik fl"><span>'.$kaynak['tarih'].'</span> '.$kaynak['isim'].'</h1>';
        $galeri .= '<h2 class="sayfaAciklama fl">'.$kaynak['aciklama'].'</h2>';
        $galeri .= '<div class="sayfaIcerik" style="width:100%">';
        $galeri .= '<div class="galeriH fl swiper-container-'.$kaynak['id'].'">';
        $galeri .= '<ul class="fl swiper-wrapper-'.$kaynak['id'].'">';
        while($kaynakG = mysql_fetch_assoc($cekG)){
               $galeri .= '<li class="swiper-slide-'.$kaynak['id'].'"><img src="'.$yol.'images/galeri/'.$kaynak['id'].'/'.$kaynakG['resim_url'].'" /></li>';
        }
        mysql_free_result($cekG);
        $cekG ="";
        $galeri .= '</ul></div></div>';
        $galeri .='<script>';
        $galeri .= 'var mySwiper = new Swiper(\'.swiper-container-'.$kaynak['id'].'\',{';
        $galeri .= 'moveStartThreshold : 75,';
        $galeri .= 'wrapperClass : "swiper-wrapper-'.$kaynak['id'].'",';
        $galeri .= 'slideClass : "swiper-slide-'.$kaynak['id'].'"';
        $galeri .= '});';
        $galeri .= '</script>';

    }    
     echo $galeri;   
    ?>

使用JOIN ed查詢,則不需要雙while循環。 您不應該使用mysql。 使用mysqli或pdo

'select g.id,g.isim,g.aciklama,g.tarih, gr.resim_url
  from galeri g 
  JOIN galeriresim gr on gr.galeriID = g.id
  where g.dil = '.$dbDil.' order by id desc'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM