對此可能有一個簡單的答案,但是我不能讓我的生活得到這個工作。具有相同名稱,不同ID的多個MySQL記錄
我使用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;
...等等。我遇到的唯一問題是,如果我有兩名同名的學生,則列表中的第二位將回顯信息不正確。例如,MySQL表有'standname'和'standnumber',如果'Jimmy St.James','1010'和'Jimmy St.James','1090'都是表中的記錄,它將會只允許我在課程中註冊Jimmy 1010而不註冊Jimmy 1090.
我剛剛離開我的驗證方式嗎?或者我錯過了一些非常明顯的東西?起初,我認爲這只是因爲我只使用數組$bikestoods[0]
中的第一項,所以我將其更改爲$bikestoods[0] or $bikestoods[1]
,但它仍然無效。
檢查它是否在陣列中,在它的任何位置。 PS:按名稱檢查通常是一個真正的痛苦。真正獨特的數據如SSN或其他更好 – Alfabravo 2012-08-15 14:38:30
您正在使用'while($ row = mysql_fetch_array($ standslistq))',但我沒有在任何地方看到'$ standslistq'作爲MySQL結果。它在哪裏定義? – newfurniturey 2012-08-15 14:38:38
對不起,@ newfurniturey它被定義爲'$ standinglistq = mysql_query(「SELECT * FROM standsinfo」)'我有幾百行代碼,所以我不想複製和粘貼所有信息 – WizardOfLoss 2012-08-15 15:07:16