2016-08-18 2 views
2

私がドロップダウンメニューを作成しようとしているところで、ユーザが文字を選択して、この文字で始まるすべての名前を作成したテーブルに出力します。 名前はデータベースから選択されます。ユーザーが手紙をまだ選択していないときや、データベースの結果がないときに、このテーブルを非表示にします。だから私はテーブルがデータベースからの結果があるときにのみ表示されます。ここに私のコードは次のとおりです。すべてのhtmlテーブルを隠すmysqlデータベースの結果がない

<html> 
 

 
<head> 
 
    <title>Title</title> 
 
    <style> 
 
    table { 
 
     width: 100%; 
 
     border-collapse: collapse; 
 
    } 
 
    table, 
 
    td, 
 
    th { 
 
     border: 1px solid black; 
 
     padding: 5px; 
 
    } 
 
    th { 
 
     text-align: left; 
 
    } 
 
    </style> 
 

 
</head> 
 

 
<body> 
 
    <?php $con=mysqli_connect('localhost', 'root', 'evolvia2016', 'presta_prova'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } ?> 
 
    <form method="post"> 
 
    <select name="users"> 
 
     <option value="">Scegliete una lettera:</option> 
 
     <option value="A">A</option> 
 
     <option value="B">B</option> 
 
     <option value="C">C</option> 
 
     <option value="D">D</option> 
 
    </select> 
 
    <input type="submit" name="submit" value="Go" /> 
 
    </form> 
 
    <br> 
 
    <div id="txtHint"><b>Vedi qui i tipi ti marche:</b> 
 
    </div> 
 
    <table id='results'> 
 
    <tr> 
 
     <th>Marca</th> 
 
     <th>Descrizione</th> 
 
    </tr> 
 
    <?php $q=$ _POST[ "users"]; //$sql="SELECT * FROM presta_prova WHERE marca LIKE 'B%' " ; $sql="SELECT * FROM presta_prova WHERE marca LIKE '" . $q . "%' "; $result=mysqli_query($con,$sql); while($row=mysqli_fetch_array($result)) { echo "<tr>"; echo 
 
    "<td>" . $row[ "marca"] . "</td>"; echo "<td>" . $row[ "descrizione"] . "</td>"; echo "</tr>"; } echo "</table>"; ?> 
 
    </table> 
 
</body> 
 
<?php mysqli_close($con); ?> 
 

 
</html>

私は隠し属性を挿入しようとするが、それは問題を解決していません。誰かが上記のケースでそれを隠す方法を教えてもらえますか?ありがとう!これはあなたを助けるかもしれ

+0

結果が空であればロジックは結果をチェックします。 display = "none"と同様にテーブルCSSプロパティを変更する条件に基づいて同様に – Karthi

答えて

0

にサンプルを追加ロジック

<?php 
$con=mysqli_connect('localhost', 'root', 'evolvia2016', 'presta_prova'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } 
$sql= mysqli_query($con, "SELECT * FROM presta_prova WHERE marca LIKE 'B%'") ; 
$row = mysqli_fetch_assoc($sql); 
$totalRows_results = mysqli_num_rows($sql);  
?> 


<?php if($totalRows_results > 0) { ?> 

Anything inside here will be visible if the query returns any result 
//e.g you may echo out your results here <?php echo $row['column']; ?> 


    you can also do your while loop inside here 
    <?php do { ?> 
    //your repeating region 
     <?php echo $row['column']; ?> //i.e. <?php echo $row['marca']; ?> 
    <?php } while ($row = mysqli_fetch_assoc($sql)); ?> 

<?php } ?> 



<?php if($totalRows_results == 0) { ?> 

Anything inside here will be visible if the query does not return any result 
//e.g you may display an error message here like. sorry no result found 

<?php } ?> 
です
0

、簡単な方法は、

PHPのみのみページ負荷で動作し、あなたはそれ以外の場合は、テーブルを非表示にするにはJavascriptを/ jQueryのを使用します()関数をPHPのmysqli_num_rowsを使用する必要があるが、機能は数を返しますレコードが取り出されたのそれが行をフェッチした場合、テーブルがそうでなければ、いくつかの警告メッセージを残す発生、私はあなたのコードここ

<html> 
    <head> 
     <title>Title</title> 
     <style> 
     table { 
      width: 100%; 
      border-collapse: collapse; 
     } 
     table, 
     td, 
     th { 
      border: 1px solid black; 
      padding: 5px; 
     } 
     th { 
      text-align: left; 
     } 
     </style> 
    </head> 
    <body> 
     <?php $con=mysqli_connect('localhost', 'root', 'evolvia2016', 'presta_prova'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } ?> 
     <form method="post"> 
     <select name="users"> 
      <option value="">Scegliete una lettera:</option> 
      <option value="A">A</option> 
      <option value="B">B</option> 
      <option value="C">C</option> 
      <option value="D">D</option> 
     </select> 
     <input type="submit" name="submit" value="Go" /> 
     </form> 
     <br> 
     <div id="txtHint"><b>Vedi qui i tipi ti marche:</b> 
     </div> 
     <?php $q=$ _POST[ "users"]; //$sql="SELECT * FROM presta_prova WHERE marca LIKE 'B%' " ; $sql="SELECT * FROM presta_prova WHERE marca LIKE '" . $q . "%' "; 
$result=mysqli_query($con,$sql); 
if(mysqli_num_rows($result)>0) // if record found, this generate the table 
{ 
echo "<table id='results'> 
     <tr> 
      <th>Marca</th> 
      <th>Descrizione</th> 
     </tr>"; 
while($row=mysqli_fetch_array($result)) { echo "<tr>"; echo 
     "<td>" . $row[ "marca"] . "</td>"; echo "<td>" . $row[ "descrizione"] . "</td>"; echo "</tr>"; } echo "</table>"; 
} 
else 
    echo "No Output for the Query"; 
?> 
    </body> 
    <?php mysqli_close($con); ?> 
    </html> 
+0

出力がブランクになりました。 –

+0

@Doeクエリを確認し、クエリを出力し、Phpmyadminでそのデータをフェッチするかどうかを確認します – Keerthivasan

関連する問題