2015-01-02 59 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! –