2016-11-10 5 views
0

Я хочу отобразить сообщение «result not found», если пользователь ищет что-либо, что не выходит из базы данных.
вот мой код, но он не работал.дисплей «результат не найден», если в базе данных нет результата

может кто-нибудь сказать мне, что случилось с моим кодом?

<?php 
     include 'database_conn.php'; 

     $eventCat = $_GET['catID']; 
     $eventVenue =$_GET['venueName1']; 

     $sqlSearch = " SELECT * FROM te_events 

        WHERE catID = '$eventCat' AND venueID = '$eventVenue'"; 


     $rsSearch = mysqli_query($conn,$sqlSearch) or die(mysqli_error($conn)); 


    ?> 
    <!DOCTYPE html> 
    <html> 
    <head> 
    <title></title> 
    </head> 
    <body> 

     <thead> 
     <th>Title</th> 
     </thead> 
    <?php 
    while ($row =mysqli_fetch_assoc($rsSearch)){ 
      //extract each field$ 
      $id   = $row ["eventID"]; 
      $title  = $row ["eventTitle"]; 
      $desc  = $row ["eventDescription"]; 
      $venueId = $row ["venueID"]; 
      // $venue  = $row ["venueName"]; 
      // $location = $row ["location"]; 
      $categoryId = $row ["catID"]; 
      //$category = $row ["catDesc"]; 
      $eStart  = $row ["eventStartDate"]; 
      $eEnd  = $row ["eventEndDate"]; 
      $ePrice  = $row ["eventPrice"]; 


     if(!empty($row)){ 

     //start a row 
      echo"<tr>\n"; 
      //output the url 
      echo"<td>\n"; 
      echo"<div><a href =\"allDetails.php?eventID=$id\"> 
       $title</a></div>\n"; 
      echo"</td>\n"; 
     } 
      else{ 
       echo "No event found! Please select other option.\n"; 



     } 

     } 
     mysqli_free_result($rsSearch); 
     mysqli_close($conn); 

    ?> 

    </body> 
    </html> 
+0

'if (num_rows> 0) {while ... {...}} else {// не найден}' здесь псевдо. –

+0

@ Fred-ii- u означает put if (num_row> 0) infront of while ($ row = mysqli_fetch_assoc ($ rsSearch))? –

+1

@ChiShen да. Вам нужно проверить, нет ли. строк, возвращаемых перед повторением в результирующем наборе. – Maximus2012

ответ

2

Проверьте количество строк и затем напишите свой код на основе результата.

$rows=mysqli_num_rows($rsSearch); 

if($rows > 0) { 

while ($row = mysqli_fetch_assoc($rsSearch)){ 

// code for results 

} 

} else { 

// legend for no results 

} 

Edit: вам не нужно задать массив результатов MySQL ли заполняется строка или пустой, сама линия никогда не будет пустым, он просто не будет существовать в массиве, если запрос не сделал найти любые данные.

Смежные вопросы