2015-01-02 99 views
-2

我在名爲"login""valid_stuid"(valid student id)的數據庫中有兩個表。 "valid stuid"有兩行這是"stu_id""status",讓我們說,現在1列在表中"valid stuid"可用這是"status"下排"123""stu_id"下排和"open"。我創建了一個php腳本來爲用戶註冊學生ID,用戶名,密碼,名字和姓氏。到目前爲止,我已經成功地將它們輸入到數據庫中,但我正在努力從valid_stuid表中選擇狀態。如何比較php中的提取值?

我的代碼都類似:

if(isset($_POST["submit"])){ 
if(!empty($_POST['stuid']) && !empty($_POST['user']) && !empty($_POST['pass']) &&  !empty($_POST['fname']) && !empty($_POST['lname'])) { 
$stuid=$_POST['stuid']; 
$user=$_POST['user']; 
$pass=$_POST['pass']; 
$fname=$_POST['fname']; 
$lname=$_POST['lname']; 

$con=mysql_connect('localhost','root','') or die(mysql_error()); 
mysql_select_db('user_registration') or die("cannot select DB"); 

$stuidcheck="SELECT status FROM valid_stuid WHERE id='".$stuid."'"; 
     if($stuidcheck == "used") 
      { 
      echo "Student ID is registered to another account!"; 
      } 
     else{ 
      $sql1="INSERT INTO login(stu_id,username,password,first_name,last_name) VALUES('$stuid','$user','$pass','$fname','$lname')"; 
      mysql_query($sql1); 
      $sql2="INSERT INTO valid_stuid(stu_id,status) VALUES('$stuid','used')"; 
      mysql_query($sql2); 
      } 
} else { 
echo "Please fill up all fields"; 
} 
} 
?> 

我覺得我比較$stuidcheck的價值慘敗,並得到這樣從其他語言比較的想法。我還計劃使用修改將狀態從"open"更改爲"used",但我會在完成此操作後嘗試完成。

+1

'$ stuidcheck'是一個字符串。首先執行'$ stuidcheck'查詢。 –

+0

看來你是比較數組與字符串使用$ stuidcheck ['status']而不是'$ stuidcheck' – AVM

+0

@u_mulder,我實際上不知道如何查詢一個選擇,所以我假設從插入查詢將工作,但我無論如何,它已被刪除。我將嘗試研究如何正確查詢select語句。謝謝 –

回答

3

實際上你需要對你的數據庫執行查詢:

$stuidcheck="SELECT status FROM valid_stuid WHERE id='".$stuid."'"; 
    if($stuidcheck == "used") 

這一切確實是給字符串$stuidcheck值「SELECT ...」,但你需要做的是這樣的:

$result=mysql_query($stuidcheck); 
$row=mysql_fetch_assoc($result); 
if ($row['status'] == "used") 

或類似的東西(我的PHP有點生疏,但你會發現成千上萬的代碼示例)。

+0

非常感謝,儘管代碼無效,但我可以看到我的問題在哪裏,因此我可以有效地研究如何正確執行。我一週前剛開始使用php,本週我決定如何整合sql和php,所以我仍然在努力,但是你已經幫了我很多。謝謝! –

+0

OMG我很笨,這段代碼DID WORK!是我的錯!我用mysqli_error來確定問題,事實證明我把id而不是stu_id放在WHERE之後。非常感謝PaulJ! –