Php在数据库中搜索以显示数据,而不是工作

时间:2017-11-14 11:43:39

标签: php html

我正在尝试从我的数据库中显示一些数据,当我尝试显示由搜索栏指定的某些数据时,我不会工作。这是代码。我希望有人能解决我的问题。

我已经尝试了几个小时,但似乎没有任何效果。

我删除了大部分的HTML代码,甚至可以发帖。

<?php
	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>";
            }
        }

        ?>

5 个答案:

答案 0 :(得分:0)

用作函数的mysqli_query()需要mysqli_connect()返回的链接id o mysqli_init()

PHP mysqli_query() Function

所以你需要一个$ connection 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");

答案 1 :(得分:0)

您在查询中使用$search,但正确的变量应为$searchq

答案 2 :(得分:0)

您是否获得了正确的查询结果以及其中的行数?我可以看到你的查询中有错误:

SELECT * FROM&#39; cards&#39;在哪里&#39;名称&#39;就像......

表和字段的名称应该在另一个quoats中 - “

SELECT * FROM cards WHERE name LIKE ......

或者这是在发布消息上输入问题?

在这一行:$ count = mysqli_num_rows( $ queryQ ); - 查询结果的变量是 - $ query而不是$ queryQ

答案 3 :(得分:0)

以下是另一种方式:

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

答案 4 :(得分: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:&lt; form method =&#34; POST&#34;&gt;