2013-02-07 39 views
0

我的整個代碼如下。我有一個數組$members存儲一些ID。我運行一個循環來搜索表中的這些ID,檢索它們各自的名稱並將它們存儲在另一個數組$members_name中。然後我將這兩個數組插入到我的表中。 $members數組的大小在1-6之間。數據庫沒有爲數組數據集執行INSERT

<?php 
    session_start(); 
     $members = $_POST['mem']; 
     $n=count($members); 
     foreach($members as $key=>$value){ 
      $res = mysql_query("SELECT id,name,email FROM users WHERE id='".$value."'"); 
      if ($res === false) { 
       echo mysql_error(); 
       die; 
      } 
      $row = mysql_fetch_assoc($res); 

      if($row['id']) 
      { 
       $members_name[]=$row['name']; 
       $members_email[]=$row['email']; 
      } 
     } 
     $sess_uid = $_SESSION['id']; 
     $sess_email = $_SESSION['email']; 
     $sess_name = $_SESSION['name']; 
     $id=$_SESSION['eid']; 
     $name=$_SESSION['ename']; 
     $members=$_SESSION['emembers']; 

     if ($n==5){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name,mem_2_id,mem_2_name,mem_3_id,mem_3_name,mem_4_id,mem_4_name,mem_5_id,mem_5_name,mem_6_id,mem_6_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."','".$members[0].",'".$members_name[0]."','".$members[1].",'".$members_name[1]."','".$members[2].",'".$members_name[2]."','".$members[3].",'".$members_name[3]."','".$members[4].",'".$members_name[4]."')"); 
     } 
     else if ($n==4){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name,mem_2_id,mem_2_name,mem_3_id,mem_3_name,mem_4_id,mem_4_name,mem_5_id,mem_5_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."','".$members[0].",'".$members_name[0]."','".$members[1].",'".$members_name[1]."','".$members[2].",'".$members_name[2]."','".$members[3].",'".$members_name[3]."')"); 
     } 
     else if ($n==3){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name,mem_2_id,mem_2_name,mem_3_id,mem_3_name,mem_4_id,mem_4_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."','".$members[0].",'".$members_name[0]."','".$members[1].",'".$members_name[1]."','".$members[2].",'".$members_name[2]."')"); 
     } 
     else if ($n==2){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name,mem_2_id,mem_2_name,mem_3_id,mem_3_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."','".$members[0].",'".$members_name[0]."','".$members[1].",'".$members_name[1]."')"); 
     } 
     else if ($n==1){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name,mem_2_id,mem_2_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."','".$members[0].",'".$members_name[0]."')"); 
     } 
     else if ($n==0){ 
      $res=mysql_query("INSERT INTO eventregistration(event_id,event_name,event_members,mem_1_id,mem_1_name) 
     VALUES('".$id."','".$name."','".$members."','".$sess_uid."','".$sess_name."')"); 
     } 
     $url="events.php?slug=".$slug; 
      header('Location: ' . $url); 
      exit; 
?> 

我還是PHP學習者。我知道我正在使用PHP的舊格式。仍然需要運行此頁面的幫助,而不是關於PDO。

+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit

回答

1
  1. 您需要停止使用mysql_函數,因爲它們已被棄用。改爲使用mysqli_PDO
  2. 您的代碼易受SQL注入攻擊。
  3. 您的表格結構沒有標準化。絕對沒有理由需要爲n成員提供專欄。
  4. 而不是每個n成員執行邏輯,將它們扔進一個數組並創建一個動態列列表。
+0

我知道他們已被棄用,但我想讓網頁首先工作。 – xan