嗨我有一個小php腳本的問題。我試圖讓我的用戶更改「工作」的狀態,所以我不得不使用選項和帖子。PHP:使用腳本更新數據庫
我可以得到答案但不是id。那麼,如何將id傳遞給腳本,然後新的腳本就是腳本。
<?php
$conx; //connection object to the server
$comd;//instance of a command object
$sql; //string variable to hold the SQL commands
$itemsAdded; //numeric var to hold num records added to table (1 or 0)
$dbpath;
$db = realpath("../Database/iceserv.mdb");
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
$connStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=$db";
$conn->Open($connStr);
$sql = "SELECT callback.*, status.stat_disc AS Status
FROM callback INNER JOIN status ON callback.callback_STATID = status.stat_ID";
$rs = $conn->Execute($sql);
if (!$rs) {exit("Error in SQL");}
echo "<form method='post' action='../scripts/update_stat.php' id='status' name='status'><table><tr>";
echo "<th> Cutomer ID</th>";
echo "<th>Customer First Name</th>";
echo "<th>Customer Surname</th>";
echo "<th>Customer Phone Number</th>";
echo "<th>Customer Reason For Callback</th>";
echo "<th>Callback Status</th>";
echo "<th>Change Status</th>";
echo "<th></th>";
while (!$rs->EOF) {
$callid=$rs->Fields['callback_ID']->Value;
//echo $callid;
$fname=$rs->Fields['callback_fname']->Value;
$sname=$rs->Fields['callback_sname']->Value;
$phone=$rs->Fields['callback_phnum']->Value;
$reason=$rs->Fields['callback_reason']->Value;
$status=$rs->Fields['Status']->Value;
echo "<tr><td align='center'>$callid</td>";
echo "<td align='center'>$fname</td>";
echo "<td align = 'center'>$sname</td>";
echo "<td align = 'center'>$phone</td>";
echo "<td align = 'center'>$reason</td>";
echo "<td align = 'center'>$status</td>";
//echo "<td align = 'center'><input type='text' name='calledid' value = '$callid'></td>";
echo"<td align = 'center'><select name ='status' size='1'>
<option value =''>Choose status</option>
<option value ='1'>Open </option>
<option value ='2'>Waiting Qoute</option>
<option value ='3'>Closed </option></td>
</select>";
echo "<td><input type='submit' name='submit_btn' id='submit_btn' value='Update' class='submit_btn1'</input></td></tr></table></form>";
exit;
}
?>
所以上面的腳本調用,並從數據庫
<?php
//variable listing and usage
$conx; //connection object to the server
$comd;//instance of a command object
$sql_comd; //string variable to hold the SQL commands
$itemsAdded; //numeric var to hold num records added to table (1 or 0)
$dbpath;
$db = realpath("../Database/iceserv.mdb");
$conn = new COM('ADODB.Connection') or exit('Cannot start ADO.');
$connStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=$db";
$conn->Open($connStr);
$id = $_POST['callid'];
echo "ID is " +$id;
$option= $_POST['status'];
$sql_comd="UPDATE callback
SET callback_STATID=$option
WHERE callback_ID=$id
";
$conn->Execute($sql_comd);
//$result = null;
$conn = null;
header('Location: ../admin/callback.php');
?>
上述腳本試圖更新表拉動信息,但ID不會通過這樣路過我如何獲得ID被傳遞給腳本?
請詢問如果我一直都不清楚
我不明白你在問什麼,但我想指出你已經開放給SQL注入了。請閱讀使用PDO準備好的查詢。另外,你不能在302重定向中使用相對路徑(這就是你對位置標題所做的)。 – Brad 2011-05-18 14:55:27