2012-12-15 53 views
0

我已經寫了一些php代碼以表格的形式從mysql數據庫中檢索一些記錄。該表有三列,其中前兩個從數據庫填滿,第三個列是每行的下拉列表。現在我想從填充行中選擇下拉列表,並將每行的信息存儲在新數據庫中。將行數組存儲到mysql數據庫中

請查看密碼並回復您的建議。

<html> 
    <? 
     // data from the "recordentry.php"; 
     $date = $_POST['date']; 
     $course = $_POST['course']; 
     $period = $_POST['period']; 
     $batch = $_POST['batch']; 
     $subject = $_POST['subject']; 
     $faculty = $_POST['faculty']; 
    ?> 
    <p> Current Date&Time:<? echo $date ?></p> 
    <form enctype="multipart/form-data" name="f1" method="POST" ACTION="<?=$self ?>""> 
    <? 
     $db = "contact"; 
     //mysql_connect(localhost,$_POST['username'],$_POST['pass']); 
     $link = mysql_connect("localhost", "root", ""); 
     if (!$link) 
      die("Couldn't connect to MySQL"); 
     mysql_select_db($db, $link) or die("Couldn't open $db: " . mysql_error()); 
     $result = mysql_query("SELECT name,uic FROM student where batch='$batch' AND course='$course' order by name") or die("SELECT ERROR: " . mysql_error()); 
     $num_rows = mysql_num_rows($result); 
     echo "<table border='1' align='center'><tr><th>Name</th><th>Unique Identification Code</th> 
    <th>Attendance</th></tr>"; 
     while ($row = mysql_fetch_array($result)) 
     { 
      //Display the results in different cells 
      echo "<tr><td align=center>" . $row['name'] . "</td><td align=center>" . $row['uic'] . "</td><td align=center><select name='attendance' style='background-color:#FFC'> 
    <option>Present 
    <option>Absent 
    </select></td></tr>"; 
      $data[] = array(
       'name' => $row['name'], 
       'uic' => $row['uic'], 
       'attendance' => $row['attendance'] 
      ); 
     } 
     echo "<tr><td><input type='submit' value='Submit' name='submit_button' />"; 
     echo "</table>"; 
     foreach ($data as $value) 
     { 
      $name = mysql_result($value['name']); 
      $uic = mysql_result($value['uic']); 
      $a_status = mysql_result($value['attendance']); 
      $db = "contact"; 
      $link = mysql_connect("localhost", "root", ""); 
      //$link = mysql_connect("localhost",$_POST['username'],$_POST['password']); 
      if (!$link) 
       die("Couldn't connect to MySQL"); 
      mysql_select_db($db, $link) or die("Select Error: " . mysql_error()); 
      $result = mysql_query("INSERT INTO attendance(date, course, period, batch, subject, faculty,name, uic, attendance) VALUES ('$date', '$course', '$period', '$batch', '$subject', '$faculty', '$name', '$uic', '$a_status')") or die("Insert Error: " . mysql_error()); 
      mysql_close($link); 
     } 
    ?> 
    </form> 
</html> 

上面的代碼可以填充表中的所有從數據庫中檢索到的數據。但提交後它不能存儲最後三個字段$ name,$ uic和$ attendance。所以,請幫助我。

+1

你爲什麼要做mysql_result($ value ['name']),etc?這只是一個字符串值,不是一個mysql結果集 – kennypu

+0

不使用'短標籤' –

+0

**警告!**您的代碼包含[SQL注入漏洞](http://en.wikipedia.org/wiki/SQL_injection) - 您將未經過濾的未經驗證的用戶輸入($ _POST)直接傳遞給SQL字符串。請[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli),以便您可以使用[帶有參數化查詢的預準備語句](http: //en.wikipedia.org/wiki/Prepared_statement)。 – Charles

回答

0

試試這個:

$name = mysql_result($result, $value['name']); 
$uic = mysql_result($result, $value['uic']); 
$a_status = mysql_result($result, $value['attendance']); 

這將獲得價值一次 - 但你重用$結果在查詢(當您插入),所以它會被覆蓋。更改第一個電話或第二個電話。

相關問題