第一次做這個,看它是一個非常明顯的/簡單的解決辦法...插入通過形成多行到一個單一DB
基本上我想有一個單一的插入查詢插入多行,但是,我顯然失敗了,因此它不會工作。
的表格檢索它涉及到的相關條目中產生的形式,所以如果你在A部門會搶你的名字和形成表單上的輸入線。這一切工作正常,我可以生成的形式,但是當我嘗試插入表單時,他們遇到的問題。
目前它做的是這樣的事情,而不是插入通過表格輸入的數據,它在大多數字段中輸入字母A(COUNT,STATUS和TYPE不受此限制,因爲它們僅限於通過表格的某些數據類型自行設置)。
這是目前我如何有形式在腳本中設置:
<?php
if ($action == "editrecord") {
?>
<form name="form1" method="post" action="">
<table>
<tr><td colspan="2" align="left">
<?php //Getting Title for Record
$resultTITLE = queryDB("SELECT * FROM merit_subdepts WHERE subdeptID = '$subdeptID'");
while($rowTITLE = mysql_fetch_array($resultTITLE)) {
$recordTITLE = $rowTITLE["subdeptNAME"];
echo "$recordTITLE";
}
?>
</td></tr>
<tr><td>Member Name</td><td>Choose Award</td><td>Reason</td><td></td></tr>
<?php
$resultMERIT = queryDB("SELECT * FROM merit_members WHERE memberPRIMARY = '$subdeptID'");
while($rowMERIT = mysql_fetch_array($resultMERIT)) {
$memberID = $rowMERIT["memberID"];
$memberNAME = $rowMERIT["memberNAME"];
?>
<tr>
<td><?php echo $memberNAME; ?></td>
<td><select name="count[]" class="ui-state-default">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
<td><input name="reason[]" type="text" id="reason" class="blackInput" value="Monthly Award <?php echo date("F, Y") ?>"></td>
<td><input name="type[]" type="hidden" id="type" value="Civil">
<input name="awarder[]" type="hidden" id="awarder" value="<?php $usersname; ?>">
<input name="datea[]" type="hidden" id="datea" value="<?php $stamp83; ?>">
<input name="status[]" type="hidden" id="status" value="Check">
<input name="id[]" type="hidden" id="id" value"<?php $memberID; ?>">
<input name="dept[]" type="hidden" id="dept" value"<?php $recordTITLE; ?>">
</td>
</tr>
<?php } //end of sub-division membership list ?>
<tr><td colspan="4"><center>
<div class="butDiv"><input name="submitRECORDS" type="submit" id="submitRECORDS" value="Submit Records"></div>
</center>
</td>
</tr>
</table>
</form>
<?php
} //End of Edit Merit Records
?>
這是用來插入查詢:
if ($submitRECORDS) {
for($i = 0; $i<count($_POST['id']); $i++) //Getting total # var submitted and running loop
{ $fromID = $_POST['id'][$i]; //var
$fromTYPE = $_POST['type'][$i]; //var
$fromCOUNT = $_POST['count'][$i]; //var
$fromDATEA = $_POST['datea'][$i]; //var
$fromAWARDER = $_POST['awarder'][$i]; //var
$fromREASON = $_POST['reason'][$i]; //var
$fromDEPT = $_POST['dept'][$i]; //var
$fromSTATUS = $_POST['status'][$i]; //var
if ($fromID != "0") {
queryDB("INSERT INTO merit_precord (NAME,TYPE,COUNT,DATEA,AWARDER,REASON,DEPT,STATUS) VALUES ('$fromID','$fromTYPE','$fromCOUNT','$fromDATEA','$fromAWARDER','$fromREASON','$fromDEPT',$fromSTATUS')"); } }
$action="";
$msg=1;
}
援助之前,我撕碎了我的頭髮,大加讚賞。 :)
閱讀關於PDO,bindParam和Transactions的內容。 – 2012-02-26 15:13:42
對你提交的代碼,做'print_r($ _ POST);退出;'只是爲了看看結果是否正確。如果這看起來不錯,請回顯你正在運行的SQL查詢,以確保它看起來正確。也看看http://www.php.net/manual/en/function.mysql-real-escape-string.php來保護你的SQL – 2012-02-26 15:42:09
謝謝,我記下了注入問題,我知道它在那裏,但我是更多的感興趣的是在我充分保證之前讓它工作。我也跑了print_r($ _ POST);你提出,我得到了這個響應:Array([count] => Array [reason] => Array [type] => Array [awarder] => Array [datea] => Array [status] => Array [id] => Array [dept] => Array [submitRECORDS] =>提交記錄) – Vacosa 2012-02-26 16:12:27