[英]How do I update consecutive rows in a mysql database using php?
我有一個值列表,我試圖輸入具有動態行數的mysql數據庫。 變量存儲在$ box1,$ box2等中。 我試圖使用UPDATE在表的每個連續行中放入正確的值(在第一行中選擇$ box1,在第二行中選擇$ box2,依此類推)。 我不確定要在“ while”循環中鍵入什么代碼才能實現此目的。
<?php
// Retrieve data from Query String
$box1 = $_GET['box1'];
$box2 = $_GET['box2'];
$box3 = $_GET['box3'];
$box4 = $_GET['box4'];
$box5 = $_GET['box5'];
$session = session_id();
//build query
$query = "SELECT * FROM sessionid WHERE sessionid='$session' ";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
// Insert the right quantity in each row for each consecutive box
$i=1;
while($row = mysql_fetch_array($qry_result)){
mysql_query("UPDATE `sessionid` SET `qt`='$box' .$i . '' WHERE `sessionid`='$session' ");
$i++;
}
?>
現在,我將前一頁url中的數據輸入到數組$ box [1]中。 我不斷收到錯誤消息:解析錯誤:語法錯誤,意外的“”“,期望在第13行的/home/content/c/a/s/cashme/html/buylooper/change-qt.php中出現T_STRING或T_VARIABLE或T_NUM_STRING第13行是UPDATE查詢的行。
//Retrieve data from Query String, input into array, and update table
$count = $_SESSION['id'];
for ($i=1; $i<$count; $i++){
$box[$i] = $_GET['box'. $i .''];
mysql_query("UPDATE `sessionid` SET `qt`='$box["'. $i .'"]' WHERE `sessionid`='$session' AND `id`='$i' ");
echo $box[$i];
}
您必須認真學習的最基本的東西:
所有行都是完全隨機的。
而且您不能以任何方式依賴它們的自然順序。
要更新某行,您必須使用一些唯一字段來標識它。 Mysql的標准自動遞增ID是最佳選擇。
始終以表格形式存儲行的ID,以便能夠知道當前值屬於哪個行。
使你的形式像這樣
<input type="text" name"box[1]" value="20">
其中1
是實際行的ID
還要注意,所有數據操作都必須使用POST方法而不是GET執行。
因此,在$_POST['box']
,將有一個對id => value
對的數組,可以輕松地從中構造更新查詢。
為什么不將變量$box1
到$ box5`而不是5個變量存儲在數組中?
然后,您可以使用$boxes[$i]
調用相關值。
你需要
"UPDATE `sessionid` SET `qt`="'.$box.$i . '" WHERE `sessionid`="'.$session.'"
另外,您應該將值存儲在數組中,而不是單獨的$box
變量
你應該使用
$box[]
不
$box1,$box2, etc...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.