|
Yazan
|
Konu: SQL de Limit 0,30 olmasına rağmen toplam sonucu nasıl öğrenebilirim? {ÇÖZÜLDÜ} (Okunma Sayısı 260 defa)
|
|
webadel
|
Arkadaşlar ben pratik bir çözüm arıyorum, melesa SQL query sorgumuz limit 0,30 diye sınırlandırdık. bu sorgu sonucunu mysql_numrows ile saydırdığımızda, bana 30 sonucunu döndürüyor(!) benim tüm sonuç miktarını öğrenebileceğim basit bir fonksiyon var mı? şöyle yapasak bana çok saçma gelicek; echo mysql_numrows(mysql_query(select * db where bla bla));
echo "bu sonuçlardan 0-30 arası";
mysql_query(select * db where bla bla limit 0,30"); //listelencek kod gibi sorguyu 2 kere tekrar etmemiz çok uyduruktan olmaz mı? Uzun lafın kısası hem limit li sonuçları listelileyim, hem de toplam sonuç miktarını bileyim...?
|
|
|
|
« Son Düzenleme: 18, 2008, 05:29:54 pm Gönderen: webadel »
|
Logged
|
|
|
|
|
muratmoon
|
SELECT SQL_CALC_FOUND_ROWS kolon1, kolon2 FROM tabloadi WHERE kolon3 = 'sabit değer' LIMIT 0, 30
sql bu şekilde çalıştırılırsa maksimum 30, minimum bulunan satır sayısının değeri mysql_num_rows ile öğrebilir. daha sonra. SELECT FOUND_ROWS() total_rows
ile de eğer limit olmasaydı kaç kayıt gelecekti bunu öğreniriz. Kısaca mysqle, bana bunlardan en fazla 10 tane getir ama toplamda ne kadar olduklarını da aklında tut demiş oluyoruz.
|
|
|
|
|
Logged
|
|
|
|
|
webadel
|
SELECT SQL_CALC_FOUND_ROWS kolon1, kolon2 FROM tabloadi WHERE kolon3 = 'sabit değer' LIMIT 0, 30
sql bu şekilde çalıştırılırsa maksimum 30, minimum bulunan satır sayısının değeri mysql_num_rows ile öğrebilir. daha sonra. SELECT FOUND_ROWS() total_rows
ile de eğer limit olmasaydı kaç kayıt gelecekti bunu öğreniriz. Kısaca mysqle, bana bunlardan en fazla 10 tane getir ama toplamda ne kadar olduklarını da aklında tut demiş oluyoruz. Çok enteresan, çok teşekkür ederim, yalnız SELECT FOUND_ROWS() total_rows
bu kodu PHP de nasıl kullanılır, örneklendirirsen çok sevinirim, ayrıca işin tüm espirisi SQL_CALC_FOUND_ROWS mu? yani mesela ben $muratmoon_sorgusu = mysql_query("select SQL_CALC_FOUND_ROWS isim,soyad,no where bla bla limit 0,30"); dediğimde sorgu 30 veri döndürecek ama toplam sonucu da SQL_CALC_FOUND_ROWS sayesinde saklıyacak, şöylemi yazdırcam echo SELECT FOUND_ROWS($muratmoon_sorgusu);bu kısmı pek anlamadım, lütfen mazur gör.. Sevgiler, selamlar...
|
|
|
|
|
Logged
|
|
|
|
|
webadel
|
Hocam süpersin, çözdüm; Sorgumuzun altına, $count = mysql_query("SELECT FOUND_ROWS()"); $total = @mysql_result($count, 0); satırını eklediğimizde, $total değişkeni toplam sonucu söylüyo  Sevgiler, aklına sağlık...
|
|
|
|
|
Logged
|
|
|
|
|
muratmoon
|
Evet örnek verdiğin şekilde kullanılıyor, kendin çözmen daha hoş olmuş. Herşeyin hazırına alışkantansa böyle düşünüp mantığını anlayıp kendin sonuca ulaşmak daha güzel.
|
|
|
|
|
Logged
|
|
|
|
|
 |