Hướng dẫn mysqli check if result is empty - mysqli kiểm tra xem kết quả có trống không

Tôi đang sử dụng mã này, nhưng tôi không hiểu cách kiểm tra xem truy vấn có trả lại hàng không. Làm thế nào tôi có thể kiểm tra điều đó?

$results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group");
if ($results) { 
    //output results from database

    while($obj = $results->fetch_object())
    {
        if($obj->ANNOUNCE_TYPE=='NEWSEVENTS')
        {
            $realstring='News and Events';
        }
        else
        {
        $realstring='Welcome Note';
        }

        echo '
  • '.$realstring.''; echo '
    '; echo '('.$obj->POST_DATE.' ) '.$obj->ANNOUNCEMENTS.'
  • '; } }

    Hướng dẫn mysqli check if result is empty - mysqli kiểm tra xem kết quả có trống không

    Không hoảng loạn

    40.4K10 Huy hiệu vàng59 Huy hiệu bạc75 Huy hiệu Đồng10 gold badges59 silver badges75 bronze badges

    Đã hỏi ngày 21 tháng 1 năm 2014 lúc 12:47Jan 21, 2014 at 12:47

    0

    Bạn có thể sử dụng num_rows trên bộ dữ liệu để kiểm tra số lượng hàng được trả về. Thí dụ:

    $results = $mysqli->query("SELECT ANNOUNCE_NUMBER,ANNOUNCEMENTS,ANNOUNCE_TYPE,POST_DATE FROM home WHERE ANNOUNCE_NUMBER NOT LIKE $excludewelcome AND ANNOUNCE_NUMBER NOT LIKE $excludenews ORDER BY ANNOUNCE_NUMBER DESC LIMIT $position, $items_per_group");
    if ($results) { 
    
        if($results->num_rows === 0)
        {
            echo 'No results';
        }
        else
        {
            //output results from database
            while($obj = $results->fetch_object())
            {
                if($obj->ANNOUNCE_TYPE=='NEWSEVENTS')
                {
                    $realstring='News and Events';
                }
                else
                {
                $realstring='Welcome Note';
                }
    
                echo '
  • '.$realstring.''; echo '
    '; echo '('.$obj->POST_DATE.' ) '.$obj->ANNOUNCEMENTS.'
  • '; } } }

    Đã trả lời ngày 21 tháng 1 năm 2014 lúc 12:52Jan 21, 2014 at 12:52

    MacMacmacmacMacMac

    33.1K54 Huy hiệu vàng147 Huy hiệu bạc220 Huy hiệu đồng54 gold badges147 silver badges220 bronze badges

    1

    Nếu mảng trông giống như [null] hoặc [null, null] hoặc [null, null, null, ...]

    Bạn có thể sử dụng Implode:

    Implode được sử dụng để chuyển đổi mảng thành chuỗi.

    $con = mysqli_connect("localhost","my_user","my_password","my_db");
    $result = mysqli_query($con,'Select * From table1');
    $row = mysqli_fetch_row($result);
    if(implode(null,$row) == null){
         //$row is empty
    }else{
         //$row has some value rather than null
    }
    

    Đã trả lời ngày 13 tháng 1 năm 2018 lúc 9:33Jan 13, 2018 at 9:33

    1


    Chúng tôi đã thấy lệnh sql chọn cùng với mệnh đề nơi để tìm nạp dữ liệu từ bảng MySQL, nhưng khi chúng tôi cố gắng đưa ra một điều kiện, so sánh trường hoặc giá trị cột với NULL, nó không hoạt động đúng.SELECT command along with the WHERE clause to fetch data from a MySQL table, but when we try to give a condition, which compares the field or the column value to NULL, it does not work properly.

    Để xử lý tình huống như vậy, MySQL cung cấp ba toán tử -

    • Là null - toán tử này trả về đúng, nếu giá trị cột là null. − This operator returns true, if the column value is NULL.

    • Không phải là null - toán tử này trả về đúng, nếu giá trị cột không phải là null. − This operator returns true, if the column value is not NULL.

    • - toán tử này so sánh các giá trị, không giống như toán tử = toán tử) là đúng ngay cả đối với hai giá trị null. − This operator compares values, which (unlike the = operator) is true even for two NULL values.

    Các điều kiện liên quan đến NULL là đặc biệt. Bạn không thể sử dụng = null hoặc! = Null để tìm các giá trị null trong các cột. Những so sánh như vậy luôn thất bại bởi vì không thể biết chúng có đúng hay không. Đôi khi, ngay cả null = null thất bại.NULL or != NULL to look for NULL values in columns. Such comparisons always fail because it is impossible to tell whether they are true or not. Sometimes, even NULL = NULL fails.

    Để tìm kiếm các cột hoặc không phải là null, sử dụng là null hoặc không phải là null.IS NULL or IS NOT NULL.

    Sử dụng các giá trị null tại dấu nhắc lệnh

    Giả sử rằng có một bảng gọi là Tcount_TBL trong cơ sở dữ liệu hướng dẫn và nó chứa hai cột là hướng dẫn_Author và Tutorial_count, trong đó không xác định giá trị.tcount_tbl in the TUTORIALS database and it contains two columns namely tutorial_author and tutorial_count, where a NULL tutorial_count indicates that the value is unknown.

    Thí dụ

    Hãy thử các ví dụ sau -

    root@host# mysql -u root -p password;
    Enter password:*******
    
    mysql> use TUTORIALS;
    Database changed
    
    mysql> create table tcount_tbl
       → (
       → tutorial_author varchar(40) NOT NULL,
       → tutorial_count  INT
       → );
    Query OK, 0 rows affected (0.05 sec)
    
    mysql> INSERT INTO tcount_tbl
       → (tutorial_author, tutorial_count) values ('mahran', 20);
    
    mysql> INSERT INTO tcount_tbl
       → (tutorial_author, tutorial_count) values ('mahnaz', NULL);
    
    mysql> INSERT INTO tcount_tbl
       → (tutorial_author, tutorial_count) values ('Jen', NULL);
    
    mysql> INSERT INTO tcount_tbl
       → (tutorial_author, tutorial_count) values ('Gill', 20);
    
    mysql> SELECT * from tcount_tbl;
    +-----------------+----------------+
    | tutorial_author | tutorial_count |
    +-----------------+----------------+
    |     mahran      |       20       |
    |     mahnaz      |      NULL      |
    |      Jen        |      NULL      |
    |     Gill        |       20       |
    +-----------------+----------------+
    4 rows in set (0.00 sec)
    
    mysql>
    

    Bạn có thể thấy rằng = và! = Không hoạt động với các giá trị null như sau -!= do not work with NULL values as follows −

    mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL;
    Empty set (0.00 sec)
    
    mysql> SELECT * FROM tcount_tbl WHERE tutorial_count != NULL;
    Empty set (0.01 sec)
    

    Để tìm các bản ghi nơi cột Tutorial_count là hoặc không phải là NULL, các truy vấn nên được viết như trong chương trình sau.

    mysql> SELECT * FROM tcount_tbl 
       → WHERE tutorial_count IS NULL;
    +-----------------+----------------+
    | tutorial_author | tutorial_count |
    +-----------------+----------------+
    |     mahnaz      |      NULL      |
    |      Jen        |      NULL      |
    +-----------------+----------------+
    2 rows in set (0.00 sec)
    mysql> SELECT * from tcount_tbl 
       → WHERE tutorial_count IS NOT NULL;
    +-----------------+----------------+
    | tutorial_author | tutorial_count |
    +-----------------+----------------+
    |     mahran      |       20       |
    |     Gill        |       20       |
    +-----------------+----------------+
    2 rows in set (0.00 sec)
    

    Xử lý các giá trị null trong tập lệnh PHP

    Bạn có thể sử dụng điều kiện IF ... khác để chuẩn bị truy vấn dựa trên giá trị null.if...else condition to prepare a query based on the NULL value.

    Ví dụ sau đây lấy hướng dẫn_count từ bên ngoài và sau đó so sánh nó với giá trị có sẵn trong bảng.

    Thí dụ

    Sao chép và dán ví dụ sau dưới dạng mysql_example.php -

    
       
          Handling NULL
       
       
          ", $mysqli→connect_error);
                exit();
             }
             printf('Connected successfully.
    '); if( isset($tutorial_count )) { $sql = 'SELECT tutorial_author, tutorial_count FROM tcount_tbl WHERE tutorial_count = ' + $tutorial_count; } else { $sql = 'SELECT tutorial_author, tutorial_count FROM tcount_tbl WHERE tutorial_count IS NULL'; } $result = $mysqli→query($sql); if ($result→num_rows > 0) { while($row = $result→fetch_assoc()) { printf("Author: %s, Count: %d
    ", $row["tutorial_author"], $row["tutorial_count"]); } } else { printf('No record found.
    '); } $mysqli→close(); ?>

    Đầu ra

    Truy cập mysql_example.php được triển khai trên máy chủ web Apache và xác minh đầu ra.

    Connected successfully.
    No record found.
    

    Làm cách nào để kiểm tra xem mysqli có trống không?

    Đối với các truy vấn thành công khác mysqli_query () sẽ trả về true.Kết quả vẫn có thể trống ngay cả khi nó thành công.Nếu bạn sử dụng PDO, như đề xuất ở trên.Bạn nhận được một mảng trở lại (mảng trống nếu kết quả trống) để bạn có thể thực hiện sizeof ($ mảng) hoặc đếm (mảng $) để kiểm tra xem bạn có 0 kết quả hay không.sizeof($array) or count($array) to check if you have 0 results or not.

    Làm thế nào để bạn kiểm tra xem kết quả SQL có trống trong PHP không?

    Hàm php trống () hàm trống () kiểm tra xem một biến có trống hay không.Hàm này trả về sai nếu biến tồn tại và không trống, nếu không nó sẽ trả về đúng.empty() Function The empty() function checks whether a variable is empty or not. This function returns false if the variable exists and is not empty, otherwise it returns true.

    Mysqli gì

    Trả về các giá trị ¶ Đối với các truy vấn thành công tạo ra một tập kết quả, chẳng hạn như chọn, hiển thị, mô tả hoặc giải thích, mysqli_query () sẽ trả về đối tượng mysqli_result.Đối với các truy vấn thành công khác, mysqli_query () sẽ trả về đúng.a mysqli_result object. For other successful queries, mysqli_query() will return true .