[英]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.