2017-01-07 17 views
0

任意の結果をエコーし​​ないと、それは結果をエコーし​​ませんが、これはコードです私のウェブサイトの検索では、私がウェブサイトの検索行った

がありますどのように多くの結果を示しています。

<?php 
$db = new mysqli('localhost','root','root','search'); 
if (isset($_GET['input'])) { 
    $keywords = $db->escape_string($_GET['input']); 

    $query = $db->query(" 
     SELECT Name, ProjectNumber, Hazard, Datedone 
     FROM hira 
     WHERE Name LIKE '%{$keywords}%' 
     OR ProjectNumber LIKE '%{$keywords}%' 
    "); 
    ?> 
    <div class="result-count"> 
     Found <?php echo $query->num_rows; ?> results 
    </div> 
    <?php 
    if ($query->num_rows) { 
     while ($r = $query->fetch_object()) { 

     } 
     ?> 
     <div class="results"> 
      <h3><?php echo $r->Hazard; ?></h3> 
     </div> 
    <?php 
    } 
} 
?> 
<div class="results"> 
    <h3><?php echo $r->Hazard; ?></h3> 
</div> 

Iを「アンドレアス」 私は結果として得るための検索は 「2件のデータが見つかりました」しかし、実際の結果が

まで表示されません。私は、事前

で 感謝を間違って何をしました
+0

あなたがのvar_dump($ rを)試すことができます。 –

答えて

1

コードに間違いがあるので、このように表示されるかどうかはわかりません。しかし、これはあなたのテーブルからのエントリを与えるでしょう。

while -loopを直接クローズするのは間違いでしたので、実際に使用する前に$rで結果を解放しています。

$db = new mysqli('localhost', 'root', 'root', 'search'); 

if (isset($_GET['input'])) { 
    $keywords = $db->escape_string($_GET['input']); 
    $query = $db->query(" 
       SELECT Name, ProjectNumber, Hazard, Datedone 
       FROM hira 
       WHERE Name LIKE '%{$keywords}%' 
       OR ProjectNumber LIKE '%{$keywords}%'"); 
    ?> 
    <div class="result-count"> 
     Found <?php echo $query->num_rows; ?> results 
    </div> 
    <?php 
    if ($query->num_rows) { 
     while ($r = $query->fetch_object()) { 
    ?> 
      <div class="results"> 
       <h3><?php echo $r->Hazard; ?></h3> 
      </div> 
    <?php 
     } 
    } 
} 

は、この解決策になる少し良いです。あなたのコードでは、すでにあるprepared statementesを使用すると、より一層安全である、inputescaping

$db = new mysqli('localhost', 'root', 'root', 'search'); 

if (isset($_GET['input'])) { 
    $keywords = "%" . $_GET['input'] . "%"; 
    $query = $db->prepare(" 
       SELECT Name, ProjectNumber, Hazard, Datedone 
       FROM hira 
       WHERE Name LIKE ? 
       OR ProjectNumber LIKE ?"); 
    $query->bind_param("ss", $keywords, $keywords); 
    $query->execute(); 
    $query->store_result(); 
?> 
    <div class="result-count"> 
     Found <?php echo $query->num_rows; ?> results 
    </div> 
<?php  
    $query->bind_result($name, $projectNumber, $hazard, $dateDone); 
    while ($query->fetch()) { 
    ?> 
     <div class="results"> 
      <h3><?php echo $hazard; ?></h3> 
     </div> 
    <?php 
    } 
} 
関連する問題