2014-10-10 53 views
0

我在我的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?

+1

我不是一個SQL專家,但我認爲在這種情況下,你需要在表格前添加如下所示的列:'「... WHERE tbmembers.member ='$ formfield1'...」'。類似的東西。我可能是錯的,但我認爲我以前使用過這種方法,那就是我必須做的。 – Rasclatt 2014-10-10 15:50:33

+0

上面是否有更多的代碼,因爲你有更多的if語句,但是我們看不到它們的條件。你說你得到的用戶不存在的錯誤,但是這個代碼中缺少if語句。這將有所幫助。 – slapyo 2014-10-10 15:54:02

+1

gentledozy我不會建議你解析你的參數,像這樣的查詢..它通常容易受到sql注入......你看看參數查詢嗎?也不應該使用preANSI連接表的方式...成員和優惠券之間沒有任何有意義的聯繫,從我可以看到哪些可能很糟糕.... – 2014-10-10 15:54:02

回答

0

您的查詢應該是這樣的(根據你的問題):

"SELECT member, coupon_code 
FROM tbmembers, tbcoupon 
WHERE member = '" . $formfield1 . "' AND coupon_code = '" . $formfield2 . "' "; 

和你,如果條件應該是:

if ($result_of_login_check->num_rows > 0){ 
    //get result, set login status as 1 etc 
} else{ 
    //Wrong coupon code or user does not exist error 
} 
+0

@Gentledozy:讓我知道代碼爲你工作或不:) – arshad 2014-10-10 16:23:02

+0

謝謝如果它工作與否,我會盡快回復您。你能投票表達這個問題嗎? – Gentledozy 2014-10-10 16:31:50

+0

它沒有工作。無論如何感謝 – Gentledozy 2014-10-10 17:47:57