2016-05-17 12 views
1

DBから必要なすべての結果を取得するためにクエリを取得できません。 ホームページで検索して、私が議論しているページに誘導します。ユーザーは自分の郵便番号を使用して自分のエリア内のレストランを検索します。PHP:Loopがdbの問題ですべての結果を表示しない

私のクエリは、検索バーに入力されたものと一致する結果をDBでチェックしています。問題が複数ある場合でも1つの結果しか表示されません。 DBに入力された最後のレストランを常に表示します。

私は問題が何かを見ることができない、何か助けや示唆に感謝するでしょう。

$output=''; 
    if(isset($_POST['search'])){ 
$searchq= $_POST['search']; 


      $sql=mysqli_query($dbc,"SELECT * 
FROM Rest_Details 
WHERE Delivery_Pcode.Pcode LIKE '%".$searchq."'") or die ("could not search!"); 
      echo var_dump($sql); 

      $count = mysqli_num_rows($sql); 
      if($count ===0){ 
$output ='<b>Oh no! We do not currently deliver to '.$searchq.'</b></br> 
        Please leave your email address & we will notify you as soon as we do! </br> 
<form action="Area_Rest_page.php"> 
<input type="text" name="FirstName" value=""> 
<input type="submit" value="Submit"> 
</form>'; 

      }else{ 
       $i=1; 
      }while($row_prods= mysqli_fetch_array($sql)){ 
      $EXAMPLE = $row_prods['EXAMPLE']; 


      $output ='<h3 id="rest_name">'.$rest_name .'</h3>'. 

        ;  
      $i++; 

次に、以下のページをページの下に配置します。

print("$output"); 

DBと正常に接続セッションが開始されたベンダーが提案されていますが(使用、連結のための(+)記号を使用することができないように、私はまた、エラーハンドラ(エラーなし)

+1

** WARNING **:あなたが使用する必要がありますmysqli' '使用する場合は、[パラメータ化クエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と[ 'bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用して、クエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

答えて

2

同じを持っています。 )代わりに。

$output = $output . '<h3 id="rest_name">'.$rest_name .'</h3>'. 
        '<p class="title"> Price</p>'. 
        '<p class="title">Avg Delivery</p>'. 
        '<p class="title">Cost</p>'. 
        '<a href="product_page.php?rest_id='.$rest_id.'&Postcode='.$searchq.'"><button id="feed">Feed Me!</button></a>'. 
        ; 
+0

大丈夫です!新しいことを学びました。ありがとうございました – Blue

関連する問題