Doğru Cevap
-
hocam
senin 3. bir tabloya daha ihtiyacın var
urun tablosunda katid sutunun 1,3,6,7 çok sağlıklı değil.
3. tablo olarak urunkat tablosu olur
id, urunid, katid seklinde 3 field olur
ve kaydederken de 5 nolu urunumuz, 2,5,8,9 kategorilerine ait olsun
id urunid katid -- ------ ----- 1 5 2 2 5 5 3 5 8 4 5 9
tabi sorgu da buna göre olacak.
kategori.php?id=5 diye çağırdıgında
once yeni olusturdugumuz tablodan katid 5 olan tum urunleri listeleceksin
sonra da listeledigin urunlerin id lerinden de urun tablosundan detay okutacaksın..
ya da direkt
select * from urun u,urunkat k where k.urunid=u.id and k.katid=5
şeklinde sorgulatacaksın.-
sinan
<script type="text/javascript">
$().ready(function() {
$('#add').click(function() {
return !$('#select1 option:selected').remove().appendTo('#select2');
});
$('#remove').click(function() {
return !$('#select2 option:selected').remove().appendTo('#select1');
});
});
</script>
<label class="formlabels">Kategoriler :</label>
<select name="katidx" id="select1" multiple="multiple" size="10" style="width: 420px; overflow: scroll;" >
<?php
$ylistem = mysql_query("SELECT * FROM kategori WHERE tur='1' ORDER BY id asc");
$pela = mysql_num_rows($ylistem);
if ($pela > 0) {
while ($ylist = mysql_fetch_assoc($ylistem)) {
$y_id = $ylist["id"];
$baslik = $ylist["baslik"];
?>
<option value="<?php echo $y_id; ?>"><?php echo $baslik; ?></option>
<?php
}
}
?>
</select>
<label class="formlabels">Hangi Kategorilerde Gözüksün :</label>
<select name="katid[]" multiple size="6" id="select2" style="width:420px;">
<?php
$kat_bol = explode(",",$katid);
for ($i=0; $i<count($kat_bol); $i++) {
$vauvv = $kat_bol[$i];
$kategoril = mysql_query("SELECT * FROM kategori WHERE id='$vauvv'");
$kat_ls = mysql_fetch_assoc($kategoril);
echo '<option value="'.$kat_bol[$i].'" selected>'.$kat_ls[baslik].'</option>';
}
?>
</select>
adminden bu şekilde bir işlem yaptırıyorum once kategorileri listeliyorum. sonra aşağıdaki kutuya gösterilecek kategorileri ekliyorum.
ve
yazarken db ye
$katlar = implode(',',$katid);
katlar sonucunu yazdırıyorum soylediniz gibi 4,5,6 gibi yazıyor
soylediginiz mantıkta bir tabo daha yaparsak.
sorgumuzu nasıl yapmalıyız.
id urunid katid
1 5 2,5,8 gibi olur nasıl soylediniz şeklinde yazdırız.
teşekkürler.11 yıl önce yazılmış
-
Cevaplar
-
where katid IN(2,5,8,9) and id='$id'
aradıgın cevap mysql IN komutunda..-
sinan
$listem = mysql_query("SELECT * FROM urun where find_in_set(5,katid)"); şeklinde alabiliyorumuşum.
stackoverflow dan 1 sn de oğrenmiş olduk.11 yıl önce yazılmış
-