これには簡単な答えがあるかもしれませんが、私の人生ではこれを機能させることはできません。
私はPHPとMySQLを使用しており、次のような設定をしています:
$studentname = mysql_real_escape_string($_POST['sname']);
$studentnumber = mysql_real_escape_string($_POST['snumber']);
$course = mysql_real_escape_string($_POST['courseselect']);
$bike3 = mysql_query("SELECT stoodnumber FROM bikes505 WHERE stoodname='" . $studentname . "'");
$bikestoods = mysql_fetch_array($bike3);
while($row = mysql_fetch_array($stoodlistq))
{
$stoodentname = $row['stoodname'];
$stoodentnumber = $row['stoodnumber'];
//$coursename = $row2['coursename'];
//$coursecode = $row2['coursecode'];
if($studentname == $stoodentname && $studentnumber == $stoodentnumber){
//$success = 1;
//$success = "yupp";
//echo "SUCCESS, WE CAN REGISTER YOOOU!";
echo "<br>";
//echo "INSERT INTO " . $course . "";
switch($course){
case "Biking Safely":
if($studentnumber = $bikestoods[0] or $bikestoods[1]){
echo "Sorry, this student has already registered";
} else if($bikecurrent < $bikemax){
mysql_query("INSERT INTO bikes505 VALUES ('" . $stoodentname . "','" . $stoodentnumber . "')");
echo "Yay, successfully registered " . $stoodentname . " - " . $stoodentnumber . " for " . $course;
echo "<br>";
} else{
echo "Sorry, class is full!";
}
break;
...等々。私が抱えている唯一の問題は、同じ名前の生徒が 2 人いる場合、リストの 2 番目の生徒が情報が正しくないとエコーすることです。
たとえば、MySQL テーブルには 'stoodname' と 'stoodnumber' があり、'Jimmy St.James','1010' と 'Jimmy St.James','1090' が両方ともテーブル内のレコードである場合、私だけが登録できます。コースのジミー 1010 であり、ジミー 1090 ではありません。
私は検証方法から離れていますか?それとも、本当に明白な何かが欠けていますか? 最初は、配列の最初の項目しか使用していなかったからだと$bikestoods[0]
思っていたので、変更しましたが$bikestoods[0] or $bikestoods[1]
、まだ機能しません。