2012-08-14 136 views
0

我在這裏修復。我有沒有插入多個數據到一個表單的MySQL表的代碼。這裏是我的代碼 -插入在MySQL表多行與PHP

<?php 
if (isset($_POST['submitted'])) { 
    include('config.php'); 
    foreach($_POST['name'] as $row=>$nam) { 
    $name=$nam; 
    $class=$_POST['class'][$row]; 
    echo "<br/>" . $name . "<br/>" . $class; 
    $sql="INSERT INTO multiple (name, class) VALUES ('$name','$class')"; 
    } 
    if (!mysql_query($sql)) die('Error: ' . mysql_error()); 
    echo "1 record added"; 
} 
?> 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<label>Name1: 
<input id="name" name="name[]" type="text"> 
<input type="hidden" name="submitted" value="true" /> 
</label> 
<label> Class1: 
<input id="class" name="class[]" type="text"> 
</label> 
<label>Name2: 
<input id="name" name="name[]" type="text"> 
</label> 
<label>Class2: 
<input id="class" name="class[]" type="text"> 
</label> 
<label>Name3: 
<input id="name" name="name[]" type="text"> 
</label> 
<label>Class3: 
<input id="class" name="class[]" type="text"> 
</label> 
<label>Name4: 
<input id="name" name="name[]" type="text"> 
</label> 
<label>Class4: 
<input id="class" name="class[]" type="text"> 
</label> 
<label>Name5: 
<input id="name" name="name[]" type="text"> 
</label> 
<label>Class5: 
<input id="class" name="class[]" type="text"> 
</label> 
<input value="Add" type="submit"> 

</form> 

當我按下提交按鈕沒有在MySQL的表中插入。只有空的字段被創建。如果我插入5個文本字段,我會在sql表中獲得5個空字段。

+1

'mysql_ *'已被棄用,你的代碼是開放的SQL注入。 – 2012-08-14 21:03:21

+0

現在該做什麼?任何想法? – 2012-08-14 21:09:40

+0

請向我們展示您的echo語句的輸出。還echo $ sql; – 2012-08-14 21:11:26

回答

1

伊姆羅茲,您使用的[]作爲輸入元件(未編號的)示例name="class[]"的名稱的一部分,當所述表單被提交它建立一個數組。 PHP將會識別的post對象將是$_POST['class']

但是,作爲一個數組意味着在將數據插入到數據庫中之前,您必須稍微處理它,因爲您不能將數組放入數據庫

,如果你沒有

for($x=0;$x < count($_POST['class']); $x++) 
{ 
    echo $_POST['class'][$x].'<br>'; 
} 

,你將能夠看到從輸入所有輸入公佈的名稱class[]

當然這是你所需要的核心例子d總的來說,但我只是想表達發佈的數據發生了什麼。

+0

OP已經考慮到這些是使用foreach循環迭代的數組。 – 2012-08-14 21:29:31

+0

謝謝你克里斯。我現在明白,爲什麼要插入空字段。非常感謝克里斯! – 2012-08-14 21:35:06

+0

Chris在你展示的系統中仍然在表中插入空行:( – 2012-08-14 21:39:18

0

你在錯誤的地方}

$sql=}權應echo "1 record added";

我重新格式化您的代碼使用正確的縮進後移動和錯誤是顯而易見的。

1

我覺得你的插入查詢問題.....嘗試這樣

$query = mysql_query("INSERT INTO category VALUES('','$name','$class','')") or die(mysql_error());