-1

$colours赤、黄、青、緑のリストとしてデータベースに入れたいと思います。最初は N/A であり、後でユーザーが選択するドロップダウン ボックスで呼び出されます。

    include'dbc.php';
    $colours = "N/A";

    if (isset($_POST['cb']) && is_array($_POST['cb'])) {
      foreach ($_POST['cb'] as $value) {
        $colours. = $value  ",";
      }
    };

    $sql="INSERT INTO items (category,title,description,qdescription,price,colours)
    VALUES ('$_POST[category]','$_POST[title]','$_POST[description]','$_POST[qdescription]','$_POST[price]','$colours')";

    if (!mysql_query($sql)){
      die('Error: ' . mysql_error());
    }

    mysql_close($db);
4

4 に答える 4

3

ここでの問題は、.=文字の間にスペースがあることです。文字列を連結したい場合は、そのスペースを省略してください -

$colours .= $value . ",";

あなたもそれを追加したいので、後で追加の.キャラクターを追加したことにも注意してください。$value,


ここでの最後の注意点は、関数の使用についてmysql_*です。新しいコードで mysql_* 関数を使用しないでください。それらはもはや保守されておらず、公式に非推奨です。赤いボックスが見えますか?代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。

これらの新しい方法に移行するまでは、データを SQL ステートメントに挿入する前に、データをサニタイズするように注意する必要があります。現在のコードでは、SQL インジェクションに対して非常に脆弱です。

于 2013-02-22T08:02:15.060 に答える
1

これを変える

    $colours. = $value  ",";

$colours .= $value .",";
于 2013-02-22T08:00:58.263 に答える
0

.yourと your の=13 行目の間にスペースがあります。

于 2013-02-22T08:01:24.247 に答える
0

これを変える

$colours. = $value  ",";

$colours .= $value .",";
于 2013-02-22T08:01:05.767 に答える