当前位置: 首页 > 知识库问答 >
问题:

使用PHP和Mysqli使用LIKE搜索数据库时出现问题

沈长恨
2023-03-14

我运行下面的脚本时出错,我不知道如何更正它。本质上,我在mysql中有一个名为gamestbl的表。我希望用户输入一些关于游戏名称或游戏描述的关键词,然后php将正确的游戏显示为下拉列表(理想情况下)甚至信息表。

错误显示:

警告:mysqli_query()至少需要2个参数,其中1个参数在第29行的C:\xampp\htdocs\introductiongphp\Email.php中给出

警告:mysqli_fetch_array()希望参数1是mysqli_结果,在第56行的C:\xampp\htdocs\introductiongphp\Email.php中给出空值

第56行是我的While语句。第29行是……$q=mysqli\u查询($sql);

<!DOCTYPE HTML>
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<?php
//Connect to the Database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "DON'T TELL*";
$dbname = "Games";

//Create connection
$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);

// Show error if connection fails
if (!$conn){ 
    die("Connection failed: " .
        mysqli_connect_error());
}

if(isset($_REQUEST['submit'])){
    $search=$_POST['search'];
    $sql=" SELECT * FROM gamestbl WHERE game_name LIKE '%".$search."%' OR game_description LIKE '%".$search."%'";
    $q=mysqli_query($sql);
}
else{
    $sql="SELECT * FROM gamestbl";
    $q=mysqli_query($sql);
}
?>

<title>Experiment</title>
</head>

<body>
<form method="post">
    <table width="200" border="1">
  <tr>
    <td>Search</td>
    <td><input type="text" name="search" value="" /></td>
    <td><input type="submit" name="submit" value=" Find " /></td>
  </tr>
</table>
</form>
<table>
    <tr>
        <td>Game ID</td>
        <td>Game Name</td>
        <td>Game Description</td>
        <td>Game Genre</td>
        <td>Requested Days</td>
        <td>Game Price</td>
    </tr>

<?php
while($res=mysqli_fetch_array($q)){
?>
<tr>
    <td><?php echo $res['game_id'];?></td>
    <td><?php echo $res['game_name'];?></td>
    <td><?php echo $res['game_description'];?></td>
    <td><?php echo $res['game_genre'];?></td>
    <td><?php echo $res['requested_days'];?></td>
    <td><?php echo $res['game_price'];?></td>
</tr>
    <?php }?>
</table>

</body>
</html>

如果这听起来很糟糕,那么很抱歉-我是mysqli和php的真正初学者

共有3个答案

阎星河
2023-03-14

在提交表单中添加另一个正文标签,打开和关闭正文标签将分离您的mysqli查询并给出问题的解决方案

郎和志
2023-03-14

你是混合两种不同的API,MYSQL不同于MYSQLI

注意:您使用mysqli_connect()进行数据库服务器连接,但您使用mysql_query()查询数据,并使用mysql_fetch_array()循环

慕冠宇
2023-03-14

首先,这不是mysqli,这是mysql,接下来必须避免使用它,这个错误表示您有sql语法错误。所以我建议你看看$\u POST['search']。尝试打印变量$sql,看看是否一切正常(将其粘贴到mysql中)。。

无论如何,开始使用PDO!这是一个非常适合乞丐的网站:http://www.phptherightway.com

编辑:: 发现问题-连接在mysqli,其余的是mysql...干杯!

 类似资料:
  • 我试图开发一个小网站,它从数据库中按设定的半径检索结果,并将其放在地图上。我使用谷歌地图api从那里获得lat和long搜索条件,将这些传递给我的php脚本,该脚本查询数据库并返回结果集作为JSON对象。 我在使用json向php发送lat和long时遇到了一个小问题。 我的主要问题是,我搜索数据库的sql似乎是错误的,因为它只检索数据库中的前10个结果。我希望它返回搜索点半径内的前10个结果。

  • 我目前正在做一个优惠券项目。在处理我的facade类时,我遇到一个问题,通过使用外键从表中输入客户的ID来获取客户已购买的优惠券列表。 我使用的方法是: 优惠券类别: 调用方法: 我的SQL表: Coupon_vs_Customer表仅包含2行。它们都是其他表的外键。CustomerID连接到“Customers”表,而coupon_ID连接到表“Coupons” 正如您在上面看到的,ID为1的客

  • 我想使用executeQuery mongodb驱动程序php搜索_id。 这是我的用户集合的文档结构 而我的php代码是 当我运行它时,我发现以下错误 PHP致命错误:未捕获异常“MongoDB\Driver\exception\ConnectionException”,在/测试中显示消息“未知运算符:$id”。php:27堆栈跟踪:0/测试。php(27):MongoDB\Driver\Man

  • 问题内容: 我只是从ElasticSearch开始,然后尝试基于它来实现自动完成功能。 我有一个带有type 字段的索引。这是存储在该索引中的文档的示例: 分析配置如下所示: 映射: 我将以下查询发送到ES: 结果,我得到以下信息: 在大多数情况下,它是有效的。在用户必须实际键入整个单词之前,它确实找到了带有的文档(足够了)。 这就是我的问题。我也希望它返回。要获取,我需要发送以下查询: 注意那里

  • 我正在构建一个Django应用程序,它有几个应用程序。使用SQLite数据库作为后端运行良好。当我试图使用“manage.py migrate”将后端迁移到Oracle时,我发现了以下错误 django.db.utils.DatabaseError:ORA-01950:对表空间“XXXXXX”没有权限 当我在数据库中检查我的用户权限时,它有创建表、视图等的权限。我尝试执行“manage.py sq

  • 问题内容: 查询如何 被优化? 这里的主要问题是第一个通配符,它​​阻止DBMS使用索引。 编辑:此外,某字段值是纯字符串(不是一段文本),因此无法执行全文搜索。 问题答案: 两种方式: (1)使用内存中的表,它可以非常快速地运行。 (2)制定比更好的索引和搜索算法。如果不了解您的问题,就不可能对此提出任何建议。 正如您所指出的那样,%bar%模式可确保对每个查找进行表扫描,从而使数据库软件中任何