我試圖執行 我有這種頁面的HTML表單:的mysql_query在while循環
Name: <input type="text" id="namebox" value="" name="fields[]" /> <br />
Position: <input type="text" id="positionbox" value="" name="fields[]" /> <br />
<input type="hidden" name="createcard">
<input type="submit" value="Create">
..和3等領域。我通過POST將這5個表單域傳遞給一個文件process.php,該文件具有以下函數將數組元素插入到mysql數據庫中。
if(isset($_POST['createcard'])){
$this->procCreateCardtheme1();
..
..
function procCreateCardtheme1(){
global $session;
$cardData = $_POST['fields'];
$username=$session->username;
$sno=1;
echo count($cardData);
while($sno < count($cardData))
{
$v=$cardData[$sno];
echo $v;
mysql_query("INSERT INTO carddata VALUES ('$username', $sno, '$v', 1)");
$sno++;
}
現在,上面的echo語句返回預期的輸出,即五個左右的字段。但是mysql_query只執行一次。它只是將第一個條目存儲在數據庫中,而沒有其他內容。即使重新提交表單也不會做任何事情。這只是存儲在數據庫中的一個條目。 任何想法?
在循環中執行查詢不是一個好主意。在循環中形成查詢並在外部執行。 – zerodin 2010-10-25 20:28:45
更改爲'mysql_query(「INSERT INTO carddata VALUES('$ username',$ sno,'$ v',1)」)或die(mysql_error())'告訴我們輸出是什麼。另外,爲了安全起見,一定要逃避用戶輸入數據! – Jason 2010-10-25 20:30:17
感謝您的提示。會這樣做.. – 0xff0000 2010-10-25 20:32:57