2017-09-10 20 views
0

私の問題のサンプルコードがあります。私がしたいことは、 "Helloworld"を検索し、入力されたデータに基づいて一致するデータがないことをユーザーに知らせたい場合です。私は考えている場合は、入力したデータがどの行にも一致しなかった場合、および入力されたデータがいくつかの行に一致した場合に、妥当性検査を行うためにelse文を使用できますか。私はこの問題の解決法を視覚化したので、私はこの方法が解決策だと思っていますが、どうすればいいのでしょうか?私は解決策は、他の条件がここに私のコードだと思う方法について考えてみましょうPHPでIF/ELSEを使用して結果を表示

検索結果が何もない場合、結果が表示されない場合、メッセージが表示されない場合は "データが一致しません"

<?php 

if(isset($_POST['search'])) 
{ 
$valueToSearch = $_POST['valueToSearch']; 
// search in all table columns 
// using concat mysql function 
$query = "SELECT * FROM `users` WHERE CONCAT(`id`, `fname`, `lname`, `age`)  LIKE '%".$valueToSearch."%'"; 
$search_result = filterTable($query); 

} 
else { 
$query = "SELECT * FROM `users`"; 
$search_result = filterTable($query); 
} 

// function to connect and execute the query 
function filterTable($query) 
{ 
$connect = mysqli_connect("localhost", "root", "", "test_db"); 
$filter_Result = mysqli_query($connect, $query); 
return $filter_Result; 
} 

?> 

<!DOCTYPE html> 
<html> 
<head> 
    <title>PHP HTML TABLE DATA SEARCH</title> 
    <style> 
     table,tr,th,td 
     { 
      border: 1px solid black; 
     } 
    </style> 
</head> 
<body> 

    <form action="php_html_table_data_filter.php" method="post"> 
     <input type="text" name="valueToSearch" placeholder="Value To Search"><br><br> 
     <input type="submit" name="search" value="Filter"><br><br> 
     <?php 
     if($result_validation != ''){ 
     ?> 
     <table> 
      <tr> 
       <th>Id</th> 
       <th>First Name</th> 
       <th>Last Name</th> 
       <th>Age</th> 
      </tr> 

    <!-- populate table from mysql database --> 
      <?php while($row = mysqli_fetch_array($search_result)):?> 
      <tr> 
       <td><?php echo $row['id'];?></td> 
       <td><?php echo $row['fname'];?></td> 
       <td><?php echo $row['lname'];?></td> 
       <td><?php echo $row['age'];?></td> 
      </tr> 
      <?php endwhile;?> 
     </table> 
     <?php 
     }else{ 
     echo "no data matched"; 
     } 
     ?> 
    </form> 

</body> 
</html> 
+0

'$ result_validation'は定義されていませんか? '$ result_validation = isset($ filter_Result);'はどうでしょうか? –

+0

私はちょうど$ result_validationの値を与えることができますどのように一致したデータを表示する他の場合、実行する方法について私のアイデアを視覚化するために$ result_validation putted $ result_validationの値を –

答えて

1

フォーム内のテーブル全体を表示することはありませんが、フォームの外側のどこかに表示する必要があります。つまり、$result_validation変数はで、定義されていないのはです。コードで$search_resultを使用する必要があります。

質問ごとにmysqli_result::$num_rowsを使用して、SELECTクエリから返された行の数を確認してください。

if($search_result->num_rows){ 
    // display table 
}else{ 
    echo 'no data matched'; 
} 
+0

それはたくさんのお世話になります! –

関連する問題