php - 搜索数据库以匹配用户输入时出现问题

标签 php mysql database

我正在尝试搜索数据库并查看它是否与用户条目匹配。然而,到目前为止,在我的代码中,当我输入数据库中的学生姓名和编号时,我只是不断收到“学生不存在”的信息,而当我输入不存在的姓名和编号时,它什么也不显示。我是 PHP 和 mysql 的新手,如果有人能帮助我并解释为什么我的代码不起作用,我将不胜感激。我的表格位于单独的页面上。在这里,我要求用户输入他们的名字,只是为了表明我输入的是正确的 $_POST。我只是测试回显名称和号码以确保代码正常工作......此时就是这样。

<form action="next.php" method="post">


              Name: <input type="text" name="name" placeholder="Name" required="required" maxlength="50">
              <br><br>

              Student Number: <input type="text" name= "snumber" required="required" maxlength="9">
              <br><br>

下一个.php

<?php

require 'connect.php';

//linking up to the database
$link = mysqli_connect(HOST, USER, PASS, DB) or die (mysqli_connect_error());

//making a variable from the user data
$name = mysqli_real_escape_string ($link, $_POST["name"]);
$number = mysqli_real_escape_string ($link, $_POST["snumber"]);
$course = $_POST["pcourse"];

// select all from table student which show student name and number

$squery = "SELECT * FROM students WHERE uid='$number' AND student = '$name'";
$sresult = mysqli_query($link, $squery);

// check is name and number entered by user equals what is in database
$sfound =0;
while ($srow = mysqli_fetch_array($sresult)) {

  if ($name == $srow['uid'] && $number == $srow['student']) {

    echo "$srow[uid] $srow[student]";

  } else{
    echo "Student doesn't exist";

    $sfound =1;
  }  // end of if ($name == $srow['uid'] && $number == $srow['student'])
} // end of while ($srow = mysqli_fetch_array($sresult))

mysqli_close ($link);
?>

<html>
<body>
<form action="index.php" method="post">
  <br>
    <input type = "submit" value="back" name="back">
</form>
</body>
</html>

最佳答案

您需要检查 mysqli_real_escape_string 生成的结果,它们可能为空。这可能就是您的数据库查询检索 0 行的原因。如果您的连接 $link 也为空,这应该是首要原因。

关于php - 搜索数据库以匹配用户输入时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851792/

相关文章:

php - 在 App Purchase DID_CHANGE_RENEWAL_PREF 案例中

mysql - 使用 select 子句更新 mysql 作为更新值

mysql - 如何在 mySql 中的多个列上定义条件非空约束?

database - 使用 Oracle 数据库的 Play 框架 - ORA-00942 : table or view does not exist

php - 用于检查两个第一个单词是否相同的正则表达式

php - 我想用 mysqldump 备份表的最后记录

MySql date = CURDATE() 不适用于 2 LIKE 条件

database - 弱实体数据库

PHP:为 JSON 对象数组命名?

mysql - 如何从不同的配置加载数据