Merhaba, arkadaşlar şöyle bi sorunum var.
Şimdi db deki tablolalarım şu şekilde
İsim mail kredi
Ahmet asdsa@hot.co 55
kerim gfhfg@hot.co 78
kerim gfhfg@hot.co 15
user.php?isim=ahmet diye postluyorum ahmetin verileri geliyor benim istediğim ise şöyle birşey ;
ahmetin kredisi 55 ise ahmet dbde en yüksek krediye sahip 2 ci kişi oluyor bu şekilde sorgulama yapıp mysql deki sıralaması olan 2 yi nasıl php çekip okutabilirim ?
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:15:05 -->-> Daha önceki mesaj 20:27:18 --
Yardım edebiliecek kimse yok muı?
Pdo ufak bi soru
8
●463
- 24-04-2016, 22:15:05
- 25-04-2016, 02:41:38Mysql versiyonunuz nedir ?
http://stackoverflow.com/questions/6...l-query-result
Burada geyt güzel örnekler verilmiş - 25-04-2016, 07:26:41merhaba hocam zaten prepare fonksiyonunu kullanıyorsunuzdur onun içine yazan sorgu şekillenecek şu şekilde kullanımı oluyor.
select * from users order by kredi desc LIMIT 1,1 dediğinizde kredisi yüksek olan 2. sıradaki kişiyi alıyor.
ilk bir sıra sayısı oluyor ikinci bir o sıradan itibaren kaç kişi alacağı oluyor.
1 yazınca niye ikinci sırayı alıyor derseniz birinci eleman 0 oluyor çünkü, programlama dillerinde arrayler vs genelde sıfırdan başlıyor. LIMIT 0,1 derseniz ilk sıradaki elemandan itibaren 1 elemanı alır.
kolay gelsin. - 26-04-2016, 00:55:50okumak istediğiniz nedir, yazdırmak istediğiniz nedir, kontrol etmek istediğiniz nedir biraz detay verirseniz yardımcı olabilirim. mesela user.php?isim=ahmet bu adres ile ekrana sıralaması olan 2 yi mi yazdırmak istiyorsunuz yoksa user.php?sira=2 gibi bir adresle ekrana en çok krediye sahip olan 2. kişiyi mi yazdırmak istiyorsunuz ya da başka bir şey..asosyetikbiri adlı üyeden alıntı: mesajı görüntüle
- 26-04-2016, 01:14:25şöyle diyeyim ;akaracay adlı üyeden alıntı: mesajı görüntüle
user.php?isim=ahmet ahmetin 25 kredisi var ama db 10 kişi var 10 kişinin kredisiyle 25 i eşleştirip ahmete kredisine göre sıra vericez yani 10 kişinin içinde ahmet 25 krediyle kaçıncı sıraya girmiş oluyor desek daha aydınlatıcı oluyor efendim - 26-04-2016, 01:49:12
<?php $i = 1; foreach($db->query("SELECT id, kredi FROM users GROUP BY kredi DESC") as $veri){ if ($veri['id'] == $_GET['id']){ $sira = $i; die(); } $i++; } echo $sira; ?>biraz uyku var, bu kafayla hatalı yazmış olabilirim, group by kullanmamın sebebi aynı krediye sahip 2 kişi varsa bunları aynı sıralamada tutmak (2 tane üçüncü ya da 5 tane sekizinci gibi) bu şekilde istemezseniz order by kullanabilirsiniz. group by hakkında w3schools.com learn sql kısmından faydalanabilirsiniz. - 26-04-2016, 08:30:15Teşekkür ederim,hocam w3schools.com'da göz atıyorum şimdi yalnız verdiğinizi denedim boş sayfa hatası aldımakaracay adlı üyeden alıntı: mesajı görüntüle
- 26-04-2016, 14:45:12Database'de bulunan bütün herkesi alıp saydırmak çok çok çok fazla performans kaybına sebep olur.akaracay adlı üyeden alıntı: mesajı görüntüle
İlk mesajda verdiğim sayfaya bakmamışsınız sanırım
select @rownum:=@rownum+1 No, foo, bar from table, (SELECT @rownum:=0) r;
Bu query üstünden gidebilirsiniz