2017-04-19 5 views
1

使用してPostgreSQLの検索結果を表示する問題がどのようにPHP

こんにちは、私は、ユーザーが特定のE-番号を検索し、それが動物に由来するかどうかを確認することができます検索機能を作成しています、基本的にビーガンかどうか見ています。私はsuccessflly私のウェブサイト上でPHPを使用してデータベースに接続している。

ページの最上部にあるコード

<?php  
// Connecting, selecting database 
$dbconn = pg_connect("host=***** port=***** 
dbname=**** user=**** password=*****") 
or die('Could not connect: ' . pg_last_error()); 

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

// Performing SQL query 
$query = 'SELECT vegan FROM enumbers WHERE code = searchq'; 
} 


?> 

検索バー:私は今となっている 'ビーガン' の結果が表示されますどのように

<div id="tablebox"> 
     <!-- Search bar --> 
     <p>Is It Vegan?</p> 
     <form name="form1" method="post" action="searchEnumbers.php"> 
      <input name="search" type="text" size="30" maxlength="5" /> 
      <input name="submit" type="submit" value="Search" /> 
     </form> 
</div> 

検索された?結果を印刷する方法がわかりません。

更新

enumbersテーブルの列名は以下のとおりです。 'コード'、 '名前'、 'タイプ'、および 'ビーガン'。

<?php  
    // Connecting, selecting database 
    $dbconn = pg_connect("host=db.dcs.aber.ac.uk port=5432 
    dbname=cs399030_16_17 user=sec17 password=Liverpool2112") 
    or die('Could not connect: ' . pg_last_error()); 

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

     // Performing SQL query 
     $pg_query = 'SELECT vegan FROM enumbers WHERE code = '.$searchq; 
     $result = pg_query($query); 

     foreach($result as $r){ //If you have multiple records or $result 
      echo "<p> Your ".$r->params." or ".$r['params']." here </p>"; //for instance 
     } 
    } 

?> 
+0

私の答えを見てみましょう。簡単な引用があるので、変数$ searchqは変更されず、文字列として読み込まれます。あなたは '' vegan FROM enumbers WHERE code = $ searchq ";のような二重引用符を使うか、ドットで連結してください(私の答えのように)。 –

+0

申し訳ありませんが、私はそれを正しく読んでいない、それはまだ結果を表示していません。 – RushFan2112

+0

以下を試してみてください:var_dump(pg_fetch_all($ result));結果があるかどうかを確認してください。いいえの場合は、問合せをデータベースに直接実行し、条件に一致する行があるかどうかを調べます。私はあなたがファイル内で作業していると仮定しました: 'searchEnumbers.php'、そうですか? –

答えて

0

あなたが何かのように持っている必要があります。

<?php  
// Connecting, selecting database 
$dbconn = pg_connect("host=**** port=**** 
dbname=**** user=**** password=****") 
or die('Could not connect: ' . pg_last_error()); 

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

    // Performing SQL query 
    $query = 'SELECT vegan FROM enumbers WHERE code = '.$searchq; 

    // make the query with: pg_query 
    // $result = pg_query($query); 

    foreach($result as $r){ //If you have multiple records or $result 
     echo "<p> Your ".$r->params." or ".$r['params']." here </p>"; //for instance 
    } 

    //you could use: var_dump(pg_fetch_all($result)); 
} 

?> 

<!-- If you want to show always the form. If not, put inside the else --> 
<div id="tablebox"> 
     <!-- Search bar --> 
     <p>Is It Vegan?</p> 
     <form name="form1" method="post" action="searchEnumbers.php"> 
      <input name="search" type="text" size="30" maxlength="5" /> 
      <input name="submit" type="submit" value="Search" /> 
     </form> 
</div> 

注これはnot the bestそれを行う方法(あなたはAJAXを使用することができ、現在はページを更新するために、貴様ページ)、または他の方法です。しかし、これはあなたが望むように動作する可能性があります。

はPHPから公式ドキュメントを参照してください:http://php.net/manual/kr/function.pg-connect.php

はそれが役に立てば幸い!

+0

JPありがとうございます。 Aulet – RushFan2112

+0

これは結果を表示していません。フォームに入力して検索を押すと、何も起こりません。 – RushFan2112

+0

$ query = 'SELECT vegan FROM enumbers WHERE code = searchq'に$が足りない。 。それはする必要があります:$ query = 'SELECT vegan FROM enumbers WHERE code ='。$ searchq; –