0

データベースに「Array」という単語が表示され続けます。フォームにチェックボックスがあり、苦労しています。私はさまざまなことを試しましたが、これが私が持っている最新のコーディングです。私は何を間違っていますか?

私のフォームでは、チェックボックスの名前は「cats[]」です。

最初の部分が重要かどうかはわかりません(オンラインでそれを見て、念のために残りの部分で使用してみました)

if(count($cats) > 0)
{
 $str = implode(",", $cats);
}

そして、実際のコード

$cats = array();

    // Not good?
    //if(isset($_POST['submit']))
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        if(isset($_POST['cats']))
        {
            $cats = $_POST['cats'];
        }
        $categories= $_POST['categories'];

        // This saves it aa a string, as you can only save those values as string.
        $str = $categories . ": " . implode(", ", $cats);
        var_dump ($str);
    }

そして、これはデータベース用です

$sql="INSERT INTO form_corpo_test (compagnie)
VALUES
('$_POST[cats]')";

編集:

これは正しいコードです (助けてくれてありがとう! あなたの回答のうち 2 つを「最良の回答」としてマークできたらよかったのに)。うまくいけば、これは他の人にも役立ちます(もちろん、SQLインジェクションも調べる必要がありますが)。

$cats = array();
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['cats'])) {
$cats = implode(",", $_POST['cats'] );
}
$categories= $_POST['categories'];
$str = $categories . ": " . $cats;
}

    $sql="INSERT INTO form_corpo_test (categories)
    VALUES
    ('$str')";
4

5 に答える 5

2

これにより、ユーザーが入力したすべての猫のカンマ区切りのリストが生成され、カテゴリに追加されます。と呼ばれるカテゴリとして、それは配列でもあるということですか??

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if(isset($_POST['cats'])) {
        $cats = implode(",", $_POST['cats'] );
    }
    $categories= $_POST['categories'];

    $str = $categories . ": " . $cats;
    echo $str;
}
于 2013-07-29T16:37:04.817 に答える
0

データベースにカテゴリを保存するというあなたの考えは間違っています。

コンマ区切りの値をデータベース列に保存しないでください。投稿にリンクされたカテゴリを保存する別のテーブルを作成してください。これがデータベースの仕組みです。

于 2013-07-29T16:39:13.760 に答える
0

データベースにこのコーディングを使用します

$sql="INSERT INTO form_corpo_test (compagnie)
VALUES
('$str')";
于 2013-07-29T16:32:28.677 に答える