首先,我知道在我的示例中存在不推薦的代碼,我正在使用我前一個設計的平臺,並且尚未完成全部更新使用mysqli代替,所以我正在對現有平臺進行一些小修改。For循環只觸發一次,輸入不正確的值到mysql數據庫
所以我有一個表單根據不同表格中輸入的類別創建輸入,表單輸出正確,但對於每個存在的類別重複相同的名稱(點和貓)。
根據另一篇文章(How to insert the dynamic table row data into database at once)將這些數據插入到我的表中可以使用for循環來完成,如我的示例所示。
我遇到的問題是,它只發射一次,儘管它創建的數組應該有4個輸入。另外,發送到表列「cat_id」的數據是「3」,它可以是它使用的cat_id的第一個數字,也可以是最後一個數組迭代[0],[1],[2],[ 3]。
這是我的第一個問題,所以我很抱歉如果沒有提供所需的所有細節,我會很樂意更新,如果有其他需要的話。
$cat_id = $_POST['cat'];
$points = $_POST['points'];
$count = count($cat_id);
for ($i = 0; $i < $count; $i++) {
$sql = "INSERT INTO scoring (cat_id, points) VALUES ('$cat_id[$i]','$points[$i]')";
$query = mysql_query($sql);
}
編輯:根據建議更新代碼。
如果'mysql_real_escape_string'(請注意**「string」**)在陣列上正常運行,我會感到非常驚訝。無論如何,返回值('$ cat_id')將是一個字符串 – Phil
同意@Phil。很確定mysql_real_escape _ ** string **將在這種情況下返回一個布爾值,從而使'count'爲1,從而只觸發一次循環。轉儲您使用的值並查看您獲得的值。 – CmdrSharp
'mysql_real_escape_string'已經從'$ cat_id'和'$ points'中移除,結果是一樣的:( –