![](/img/trans.png)
[英]PHP/MySQL: Match content of one table with another and print that instead
[英]PHP & MySQL - If content is not in one table, check another
我試圖設置一個if / else情況,看一個值是否在一個表中,然后顯示該值,如果它不在一個表中,則檢查另一個表。
我正在Cloud 9中使用PHP和MySQL。電子郵件是從未顯示的表單中獲得的。
使用正確的電子郵件搜索“客戶”表將顯示password_enc,但是如果在“客戶”表中找不到該電子郵件,並且搜索“公司”表,則不會顯示任何內容。 我檢查了PHPMyAdmin,電子郵件存在並且有效
我還檢查了表,“ email”和“ rep_email”有效。
有沒有更簡單的方法可以執行此操作,或者我當前的代碼需要調整嗎? 謝謝您的幫助。
$email = !empty($_POST ['email']) ? $_POST['email'] : "";
$email2 = $email;
$query = "SELECT * FROM Customer WHERE email = '$email'";
$result = $db->query($query);
if ($result){
$row = $result->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row['password_enc'];
}
elseif(!$result){
$query2 = "SELECT * FROM Company WHERE rep_email = '$email2'";
$result2 = $db->query($query2);
$row2 = $result2->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row2['password_enc'];
}
echo "password_enc: ".$password_enc;
您應該使用num_rows
從結果集中檢索行數。
$email = !empty($_POST ['email']) ? $_POST['email'] : "";
$email2 = $email;
$query = "SELECT * FROM Customer WHERE email = '$email'";
$result = $db->query($query);
if ($result->num_rows > 0){ //check if results is bigger then 0
$row = $result->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row['password_enc'];
} else {
$query2 = "SELECT * FROM Company WHERE rep_email = '$email2'";
$result2 = $db->query($query2);
$row2 = $result2->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row2['password_enc'];
}
echo "password_enc: ".$password_enc;
對於成功的SELECT,SHOW,DESCRIBE或EXPLAIN查詢,mysqli_query()將返回mysqli_result對象
因此,除了檢查響應之外,您實際上可以檢查返回的行數,如下所示
$query = "SELECT * FROM Customer WHERE email = '$email'";
$result = $db->query($query);
if ($result->num_rows > 0){
$row = $result->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row['password_enc'];
}else{
$query2 = "SELECT * FROM Company WHERE rep_email = '$email2'";
$result2 = $db->query($query2);
if($result2->num_rows>0){
$row2 = $result2->fetch_assoc(); /* These lines query the dataabse when user enters email */
$password_enc = $row2['password_enc'];
}
}
if(isset($password_enc)){
echo "password_enc: ".$password_enc;
}else{
echo "Password Not Available";
}
$email = !empty($_POST ['email']) ? $_POST['email'] : "";
$query = "SELECT result.* FROM( SELECT IFNULL((SELECT password_enc FROM Customer WHERE email = '$email'), (SELECT password_enc FROM Company WHERE rep_email = '$email')) as password_enc) as result";
$result = $db->query($query);
$password_enc = '';
if ($result->num_rows > 0){
$row = $result->fetch_assoc();
$password_enc = $row['password_enc'];
}
echo "password_enc: ".$password_enc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.