2012-07-20 159 views
0

我有兩個表插入到另一個表

  1. 學生
  2. csci01members

我會放在csci01members學生記錄,我的代碼沒有語法錯誤。 但它總是卡在「用戶已經是會員」中。即使他不是,我已經得到了添加記錄的代碼。

但我需要一個錯誤陷阱,所以如果用戶已經在csci01members表中的 。它不能添加記錄或 他不能查看csci01的成員,以便該成員已經在添加到表中的列表中看不到 。在表

<?php 
    $errors=""; 
     if(isset($_GET['add'])) 
     { 
      $con = mysql_connect("localhost","root",""); 
      if(!$con) 
      { die("could not connect to server".mysql_error()); } 

      mysql_select_db("login", $con); 

     if (empty($errors)){ 
     $check = mysql_query("SELECT * from csci01members"); 

     $check_count = mysql_num_rows($check); 
     if ($check_count == 1) { 
      die ("&nbsp;&nbsp;The user is already a member."); 
      } 
     } 

     $result = mysql_query("SELECT * from students where username='$_GET[add]'"); 

     $result_count = mysql_num_rows($result);  
     if ($result_count == 0) { 
       echo "<font color=red><br />&nbsp;&nbsp;The user doesn't exists.</font>"; 
       } 
     else 
      { 
      while($row = mysql_fetch_array($result)) 
      { 
     echo "Student Number: $row[username]<br>Name: $row[namelast] 
       , $row[namefirst]<br><br> was added to the group<br><br>"; 
     $sn = $row['username']; 
     $nl = $row['namelast']; 
     $nf = $row['namefirst']; 
     $nm = $row['namemi']; 

     mysql_query("INSERT INTO csci01members (username, namelast, namefirst, namemi) 
         VALUES ('$sn', '$nl', '$nf', '$nm')"); 

     mysql_close($con); 
      } 
      } 
     } 
      $con = mysql_connect("localhost","root",""); 
      if(!$con) 
      { die("could not connect to server".mysql_error());} 

      mysql_select_db("login", $con); 

      $sql="Select * from students"; 
      $sql_result=mysql_query($sql) 
      or exit("Sql Error".mysql_error()); 
      $sql_num=mysql_num_rows($sql_result); 

       if($row = mysql_num_rows($sql_result) == 0) 
       { 
       echo "There are no registered student yet<br><br>"; 
       $name=$row["username"]; 
       $class=$row["namelast"] .$row["namefirst"]; 
       $accept = "<a href='?add=$row[username]'> </a>"; 
       } 
       else 
       { 
        echo "<table border = 0 width=\"200%\">"; 
        echo "<tr>"; 
        echo "<td width = '20%' > <b><center>USN</center></b></td> 
              <td width = '60%'><b><center>Name</center></b></td> 
        <td width = '10%'><b><center>Action</center></b></td>"; 
        echo "</tr>"; 

        while($sql_row=mysql_fetch_array($sql_result)) 
        { 
        $name=$sql_row["username"]; 
        $class=$sql_row["namelast"] . ', '.$sql_row["namefirst"]; 
        $accept = "<a href='?add=$sql_row[username]'>[Add]</a>"; 

        echo "<td >".$name."</td>"; 
        echo "<td>".$class."</td>"; 
        echo "<td>".$accept."</td></tr>"; 
        } 
       } 
        echo "</table>"; 
        mysql_close(); 
?> 
+0

請不要使用'mysql_ *'函數來創建新代碼。 他們不再維護,社區已開始[棄用流程](http://goo.gl/KJveJ)。 請參閱[**紅框**](http://goo.gl/GPmFd)? 相反,您應該瞭解[準備語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net) /庫MySQLi)。 如果你不能決定,[這篇文章](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – 2012-07-20 14:35:01

回答

0

你「count_check」算都行,你需要與添加用戶名

if (empty($errors)){ 
    $check = mysql_query("SELECT * from csci01members WHERE username = '".mysql_real_escape_string($_GET['add'])."'"); 

    $check_count = mysql_num_rows($check); 
    if ($check_count == 1) { 
     die ("&nbsp;&nbsp;The user is already a member."); 
     } 
    } 

而對於附加識別器更好地使用數字ID數行。用戶名可能包含空格或其他特殊符號,當你通過url傳遞它們時,它們被編碼