0

私はここで修正中です。1つのフォームで複数のデータをmysqlテーブルに挿入しないコードがあります。これが私のコードです-

<?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つの空のフィールドが表示されます。

4

3 に答える 3

1

クエリの挿入に問題があると思います.....このようにしてみてください

$query = mysql_query("INSERT INTO category VALUES('','$name','$class','')") or die(mysql_error()); 
于 2012-11-08T06:09:38.803 に答える
1

Imroz、フォームが投稿されたとき[]の入力要素(id ではない)の名前の一部として を使用すると、配列が作成されます。name="class[]"PHP が認識する投稿オブジェクトは次のようになります。$_POST['class']

しかし、配列であるということは、データベースに挿入する前に少し異なる方法で処理する必要があることを意味します。配列をDBにドロップすることはできません(おそらくできるかもしれません)

あなたがした場合

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

名前の入力から投稿されたすべての入力を見ることができますclass[]

もちろん、これは全体的に行う必要があることの中心的な例ですが、投稿されたデータで何が起こっているかを表現しようとしています.

于 2012-08-14T21:27:33.950 に答える
0

あなたは}間違った場所にいます。

}直後は、の後$sql=に移動する必要があります。echo "1 record added";

適切なインデントを使用するようにコードを再フォーマットしましたが、エラーは明らかでした。

于 2012-08-14T21:52:46.537 に答える