-2

テーブルにデータを挿入するフォームを作成しようとしていますが、正しく機能しません。エコーするたびに:「列数が行1の値数と一致しません」。ここの誰かが私が間違っていることを教えてくれることを願っています。

私のSQLテーブル:

CREATE TABLE IF NOT EXISTS `products` (
 `serial` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(20) COLLATE latin1_general_ci NOT NULL,
 `description` varchar(255) COLLATE latin1_general_ci NOT NULL,
 `price` float NOT NULL,
 `picture` varchar(80) COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY (`serial`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

私のフォーム:

<?php
include('config.php');

 echo '<h1 style="font-size:20px;">Sieraad toevoegen</h1>';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (empty($_POST['naam']) || empty($_POST['prijs'])) {
        echo '<span style="color:red"><b>Niet alle velden zijn ingevuld!</b></span>';
    } else {
        mysql_query("INSERT INTO products (name, description, picture, price) VALUES ('$_POST[naam]','$_POST[beschrijving]','$_POST[foto]', '$_POST[prijs]', NOW())") or die (mysql_error());
        echo '<span style="color:green"><b>Het sieraad is succesvol toegevoegd!</b></span>';
    }
}
echo '<form method="post" target="_self">';
echo '<input type="hidden" name="serial">';
echo 'Naam van sieraad:<br><input type="text" name="naam"><br>';
echo 'Beschrijving:<br><textarea type="text" maxlength="250" name="beschrijving" rows="6" cols="37"></textarea><br>';
/**echo '<input name="MAX_FILE_SIZE" value="102400" type="hidden">';**/
echo 'Foto:<br><input type="text" name="foto"><br>';
echo 'Prijs:<br><input type="text" name="prijs" maxlength:"7"><br>';
echo '<input type="submit" value="Toevoegen" onclick="this.value=\'Sieraad wordt verwerkt...\';"> <input type="reset" value="Wis velden">';
echo '</form>'; 
?>

編集: わかりました、最初の投稿についてはあまり考えていませんでしたが、すべてを変更した今でも機能しません..

4

3 に答える 3

1

クエリを確認してください

mysql_query("INSERT INTO products (naam, beschrijving, prijs) VALUES
('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())") or die (mysql_error());

3 つの変数に対して 4 つのパラメーターを渡しています....それらは同じでなければなりません

于 2012-06-29T19:31:22.433 に答える
1

フォーム アクションを現在の php ファイルに設定するか、action 属性なしでそのままにしておくことができます。action = ""( HTML5の仕様に反する設定はしないでください。)

また、SQL ステートメント にはINSERT INTO products (naam, beschrijving, prijs) VALUES ('$_POST[naam]','$_POST[beschrijving]','$_POST[prijs]', NOW())、3 つのフィールドと 4 つの入力がリストされています。フィールドの数を数値入力と一致させるのは良いことです。

最後に、入力ステートメントのフィールド名が MySQL テーブルのテーブル定義と一致していることを確認してください。「名前」は「ナーム」と等しくありません。

于 2012-06-29T19:31:24.063 に答える
0

挿入クエリの列名がテーブル スキーマと一致しません。die() で列エラーが表示されるはずです。

于 2012-06-29T19:30:41.797 に答える