mysql_num_rows çalışmıyor

3 Cevap php

Bu benim php kodu

$sql="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q order by id desc";
$q = mysql_query($sql) or die(mysql_error().$sql);
$sql1="SELECT * FROM table_name WHERE FROM_UNIXTIME(date, '%Y') = $q";
$query=mysql_query($sql1);

Bu (her şey doğru) doğru sonuçları toplar

i bana hiçbir şey verir toplam sonuçları hesaplamak için kullanabilirsiniz ama ne zaman, ancak ben örneğin 3 sonuç vardı:

$total = mysql_num_rows($query);

3 Cevap

Lütfen giriş sorgu kolu değil, çünkü sorgu sapa $ q set yana ..., sen) (mysql_num_rows o kullanarak olmalıdır:

$total = mysql_num_rows($q);

Ben $ q bu nedenle $ SQL1 sorgu için, bir dize değeri kaynak değildir gördüğünüz gibi hata ile başarısız olur

Aslında satırları alınan ettik önce satır sayısı için sorarsanız, veritabanı sıfır veya bazı ara sayıda döndürebilir. Bu Oracle ve MySQL için de geçerlidir (MSSQL bilmem ama aynı şüpheli). PHP Dokümanlar:

Note: If you use mysql_unbuffered_query(), mysql_num_rows() 
will not return the correct value until all the rows in the 
result set have been retrieved.

Hatta bir tamponlu sorgu için, PHP onları saymak için tüm satırlarını olurdu.