データベースを検索して、ユーザーエントリと一致するかどうかを確認しようとしています。しかし、これまでのコードでは、データベースにある生徒の名前と番号を入力すると、「生徒は存在しません」という状態が続いています。存在しない名前と番号を入力すると、何も表示されません。私は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>
next.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>
比較がループ内の後方にあるようですか? .... '$ name'と' uid'を比較し、 '$ number'を' student'に比較しますか? –