Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Sql select sorunu...

oruccim

0
Onaylı Üye
Üye
Katılım
23 Ocak 2005
Mesajlar
178
Açılan Konu
32
Tepki puanı
0
Merhabalar..
SELECT link_id, url, isim, aciklama, size FROM links WHERE link_id in (24,4,51)
Gibi bir sorgum var ben böyle bir sorgu yaptığımda array'a aynen yukarıdaki sırada atmasını istiyorum ancak her defasında rastgele bir sırayla yerleşiyor.
Bu sorunu nasıl halledebilirim ?
 

ploop

0
Onaylı Üye
Üye
Katılım
11 Ekim 2004
Mesajlar
6,964
Açılan Konu
214
Tepki puanı
0
Konum
karavan
"order by id" ekle satıra olur sanırım.
 

oruccim

0
Onaylı Üye
Üye
Katılım
23 Ocak 2005
Mesajlar
178
Açılan Konu
32
Tepki puanı
0
Hayır o şekilde değil yani ben seçeceğim idleri önceden sıralatıyorum.
3,1,20,6789,123, şeklinde dinamik olarak bunlar geliyor ve hepsini toplu olarak seçtiriyorum. Ancak seçtiklerim yukarıda yazdığım sırada gelmiyor. Dolayısıyla yaptığım sıralama işe yaramıyor.
 

iyinet

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
Siralama komutu verilmedikce veriler sirali gelmez.
Senin sorgunda siralama verilemedigi icin, verileri verdigin sirada alman mumkun degil.

Ancak bu istedigini PHP ile yapabilirsin.

PHP:
<?
 
$idler = array(3,1,20,6789,123);
 
$sorgu = "SELECT link_id, url, isim, aciklama, size FROM links WHERE link_id in (".join(",",$idler).")";
 
$sonuc = mysql_query($sorgu);
 
$kayit_sayisi = mysql_num_rows($sonuc);
 
$kayitlar = array();
 
for($i=0;$i<$kayit_sayisi;$i++) {
 
list($link_id, $url, $isim, $aciklama, $size) = mysql_fetch_row($sonuc);
$kayitlar[$link_id]['url'] = $url;
$kayitlar[$link_id]['isim'] = $isim;
$kayitlar[$link_id]['aciklama'] = $aciklama;
$kayitlar[$link_id]['size'] = $size;
}
 
foreach($idler as $id) {
 
echo $kayitlar[$id]['url'].','.$kayitlar[$id]['isim'].','.$kayitlar[$id]['aciklama'].','.$kayitlar[$id]['size'];
 
}
 
?>
kod test edilmedi!
 
Üst