我在我的db中有兩個表TBMEMBERS & TBCOUPON。第一個表格有兩個字段「Id
(自動增量)& member
」另一個是「coupon_code
」。從不同的mysql數據庫表中選擇
我想要的是一種情況,我必須通過表單輸入成員和coupon_code,它會檢查成員& coupon_code是否存在它的各個表。如果有,它將登錄並顯示詳細信息。
我的代碼以下行,但我不斷收到 「成員不存在錯誤」
tbmembers
Id Member 1 Taylor 2 Connor
Tbcoupon
Coupon_code 12345 54321
我的代碼:
$sql = "SELECT member, coupon_code
FROM tbmembers,
tbcoupon
WHERE member = '" . $formfield1 . "' OR coupon_code = '" . $formfield2 . "';";
$result_of_login_check = $this->db_connection->query($sql);
// if this user exists
if ($result_of_login_check->num_rows == 1) {
// get result row (as an object)
$result_row = $result_of_login_check->fetch_object();
// write user data into PHP SESSION
$_SESSION['member'] = $result_row->member;
$_SESSION['user_login_status'] = 1;
} else {
$this->errors[] = "Wrong coupon_code. Try again.";
}
} else {
$this->errors[] = "This user does not exist.";
}
} else {
$this->errors[] = "Database connection problem.";
}
}
}
我知道表格之間需要匹配,但在這種情況下,任何成員都可以拿起任何coupon_code,因此沒有coupon_code鏈接到特定成員。
我的意圖不可能與mysql & php?
我不是一個SQL專家,但我認爲在這種情況下,你需要在表格前添加如下所示的列:'「... WHERE tbmembers.member ='$ formfield1'...」'。類似的東西。我可能是錯的,但我認爲我以前使用過這種方法,那就是我必須做的。 – Rasclatt 2014-10-10 15:50:33
上面是否有更多的代碼,因爲你有更多的if語句,但是我們看不到它們的條件。你說你得到的用戶不存在的錯誤,但是這個代碼中缺少if語句。這將有所幫助。 – slapyo 2014-10-10 15:54:02
gentledozy我不會建議你解析你的參數,像這樣的查詢..它通常容易受到sql注入......你看看參數查詢嗎?也不應該使用preANSI連接表的方式...成員和優惠券之間沒有任何有意義的聯繫,從我可以看到哪些可能很糟糕.... – 2014-10-10 15:54:02