$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
Nếu 'bảng' không có hàng. whats cách dễ nhất để kiểm tra này.?Kiểm tra xem mysql_query có trả lại bất cứ điều gì hay không
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
Nếu 'bảng' không có hàng. whats cách dễ nhất để kiểm tra này.?Kiểm tra xem mysql_query có trả lại bất cứ điều gì hay không
Bạn có thể sử dụng để kiểm tra xem mysql_num_rows($results) 0 hàng bị trả lại, hoặc sử dụng này thay thế nhanh hơn:
$query = "SELECT COUNT(*) AS total FROM table";
$results = mysql_query($query, $connection);
$values = mysql_fetch_assoc($results);
$num_rows = $values['total'];
Nếu bạn muốn * lấy dữ liệu từ bảng, nhưng chỉ muốn biết liệu nó có trống không để bạn có thể nói như vậy trên trang kết quả, sau đó thực hiện truy vấn thông thường của bạn và sử dụng mysql_num_rows. Những gì bạn không muốn làm là: đếm các hàng (sử dụng ở trên), sau đó làm các truy vấn bình thường nếu đếm> 0. –
Vâng, tôi đã không nghĩ về điều đó bởi vì tôi thường làm "SELECT COUNT (*) "truy vấn để tính số lượng trang nội dung, sau đó chọn chỉ một vài hàng từ bảng tùy thuộc vào trang nội dung mà người dùng đang truy cập. –
'mysql_query' và' mysql_fetch_assoc' mở rộng không được chấp nhận như của PHP 5.5.0, và sẽ bị xóa trong tương lai. Thay vào đó, nên sử dụng phần mở rộng MySQLi hoặc PDO_MySQL. http://www.php.net/manual/en/mysqli-result.fetch-assoc.php –
Nếu bạn lặp qua các kết quả, bạn có thể có một bộ đếm và kiểm tra xem.
$x = 1;
$query = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_assoc($query))
{
$x++;
}
if($x == 1)
{
//No rows
}
Câu trả lời của Jeremy Ruten ở trên rất tốt và thực thi nhanh; mặt khác, nó chỉ cung cấp cho bạn số hàng và không có gì khác (nếu bạn muốn dữ liệu kết quả, bạn phải truy vấn lại cơ sở dữ liệu). Những gì tôi sử dụng:
// only ask for the columns that interest you (SELECT * can slow down the query)
$query = "SELECT some_column, some_other_column, yet_another_column FROM `table`";
$results = mysql_query($query, $connection);
$numResults = mysql_num_rows($results);
if ($numResults > 0) {
// there are some results, retrieve them normally (e.g. with mysql_fetch_assoc())
} else {
// no data from query, react accordingly
}
Hoặc bạn có thể chỉ cần kiểm tra xem kết quả của mysql_fetch_assoc có sai không.
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
$Row = mysql_fetch_assoc($results);
if ($Row == false)
{
$Msg = 'Table is empty';
}
Theo tôi, câu trả lời hay nhất vì tất cả những gì cần làm là kiểm tra xem mysql_fetch_assoc của truy vấn có tạo ra thứ gì đó không phải là null hay không –
Có một điều tôi nhận thấy là truy vấn có thể không thành công, vì vậy bạn cần kiểm tra xem biến số kết quả $ đã được đặt chưa. Tôi sẽ sử dụng câu trả lời được đưa ra bởi yjerem làm ví dụ.
$query = "SELECT COUNT(*) AS total FROM table";
$results = mysql_query($query, $connection);
if ($results) { // or use isset($results)
$values = mysql_fetch_assoc($results);
$num_rows = $values['total'];
}
Tôi cho rằng đây là PHP? Tôi đã thay đổi các thẻ cho phù hợp. –
Thử 'if (! Isset ($ result)) {// không có gì được trả về}'. – carefulnow1