2017-11-14 7 views
0

データベースからデータを表示しようとしていますが、検索バーで指定したデータの一部を表示しようとすると動作しません。ここにコードがあります。誰かが私の問題を解決できることを願っています。データベースでPhpを検索してもデータが表示されない

Iveは数時間試しましたが、何も動作していないようです。

投稿できるようにするために、ほとんどのhtmlコードを削除しました。関数がmysqli_connectによって返されたリンクIDを(必要として使用

<?php 
 
\t include_once 'includes/dbh.inc.php'; 
 
?> 
 
<!DOCTYPE html> 
 
<html lang="en"> 
 
<body> 
 
    <form> 
 
    <input type="text" name="search" placeholder="Search for graphicscard"/> 
 
    <input type="submit" value="Search" /> 
 

 
<?php 
 

 

 

 
?> 
 

 
    </form> 
 

 
    <table width="600" border="1" cellpaddin="1" cellspacing="1"> 
 
     <tr> 
 

 

 
<th>Graphicscard</th> 
 
<th>Coin</th> 
 
<th>Hashrate</th> 
 
<th>Bios-modded</th> 
 
<th>Core-clock</th> 
 
<th>Memory-clock</th> 
 
<th>Power draw</th> 
 
<th>Additional info</th> 
 
     </tr> 
 

 
     <? 
 
    if(isset($_POST['search'])) { 
 
     $searchq = $_POST['search']; 
 
     $searchq = preg_replace("#[^`0-9a-z]#i","", $searchq); 
 
    
 
     $query = mysqli_query("SELECT * FROM 'cards' WHERE 'name' LIKE '$search%' OR coin LIKE '$search%'") or die ("No results"); 
 
     $count = mysqli_num_rows($queryQ); 
 

 
      while ($row = mysqli_fetch_array($query)) { 
 
       echo "<tr>"; 
 
       echo "<td>".$row['name']."</td>"; 
 
       echo "<td>".$row['coin'] . "</td>"; 
 
       echo "<td>".$row['hashrate'] . "</td>"; 
 
       echo "<td>".$row['bios_mod'] . "</td>"; 
 
       echo "<td>".$row['core_clock'] . "</td>"; 
 
       echo "<td>".$row['memory_clock'] . "</td>"; 
 
       echo "<td>".$row['power_draw'] . "</td>"; 
 
       echo "<td>".$row['additional_info'] . "</td>"; 
 
       echo "</tr>"; 
 
      } 
 
     } 
 

 
     ?>

+0

どのように機能しませんか?エラーメッセージが表示されますか、何かを出力していますか?また、あなたはそれはエラーメッセージを表示dosent '

' – atoms

+0

であなたの

​​をラップする必要があり、それだけで変数 '$のsearch'を使用して、クエリのyoureのでは何も –

+0

を示していないが、あなたはその名前の変数を持っていません。 – Yupik

答えて

0

mysqli_query())O mysqli_init()

PHP mysqli_query() Function

だから、$接続VARを必要とします:

$connection=mysqli_connect("localhost","my_user","my_password","my_db"); 

とクエリで使用して:

mysqli_query($connection, "SELECT * FROM 'cards' WHERE 'name' LIKE '$search%' OR coin LIKE '$search%'") or die ("No results"); 
+0

私はこれを試しましたが、それでもまだ仕事があります –

+0

私はすでに別のファイルに接続しています。 –

0

クエリで$searchを使用していますが、正しい変数は$searchqする必要があります。

0

正しいクエリ結果とその中のいくつの行が得られますか?私がいた見ることができるようにあなたのクエリでは間違いです:

SELECT *「名前」のLIKE ...テーブルとフィールドの

名別quoatsにする必要があります「カード」から - `

SELECT * FROM cards WHERE name LIKE ...

これは投稿されたメッセージにタイピングの問題がありますか?

この行の$ count = mysqli_num_rows($ queryQ); - クエリ結果のあなたが可変である - ここで$クエリではない$ queryQ

+0

私はそれをSELECT * FROM 'cards'というWHERE 'name' LIKEに変更しました。そしてここには、検索データを取得するはずのテキストボックスがあります。

0

される代替方法:

select * from cards where name like 'ABC%' 
union 
select * from cards where coin like 'XYZ%' 
union 
select * from cards where gender like 'PQR%'; 
+0

私はこれに変更しようとしましたが、運はありません。 –

0

は、この上で、あなたのコードを変更します。

if(isset($_POST['search'])) { 
    $searchq = $_POST['search']; 
    $searchq = preg_replace("#[^`0-9a-z]#i","", $searchq); 

    $query = mysql_query("SELECT * FROM cards WHERE name LIKE '$searchq%' OR coin LIKE '$searchq%'") or die ("No results"); 
    $count = mysql_num_rows($query); 

     while ($row = mysql_fetch_array($query)) { 
      echo "<tr>"; 
      echo "<td>".$row['name']."</td>"; 
      echo "<td>".$row['coin'] . "</td>"; 
      echo "<td>".$row['hashrate'] . "</td>"; 
      echo "<td>".$row['bios_mod'] . "</td>"; 
      echo "<td>".$row['core_clock'] . "</td>"; 
      echo "<td>".$row['memory_clock'] . "</td>"; 
      echo "<td>".$row['power_draw'] . "</td>"; 
      echo "<td>".$row['additional_info'] . "</td>"; 
      echo "</tr>"; 
     } 
    } 

あなたはmysqliのを使用している場合してくださいこのreferencの使用方法については

あなたのタグフォームにデータを送信する方法を追加POST:<フォームメソッド= "PO ST ">

関連する問題