0

$player_ids を含む配列があります。配列は、ユーザーが自分のチームを選択するために使用する形式で取得されました。次に、$player_ids 配列を使用してデータベースにクエリを実行します。そのような:

 if ( isset($_POST['submit']) ) {
    $player_ids = array_map('intval', $_REQUEST['players']);

    var_dump($player_ids);

    $query = 'SELECT `name` 
        FROM `player_info` 
        WHERE `player_id` IN (' . implode(',', $player_ids) . ')';

    $return_names = mysql_query($query) or die(mysql_error());

    while ( $row = mysql_fetch_assoc($return_names) ) {
        $selected[] = $row['name'];
    }

    var_dump($selected);

上記のコードは機能しており、ブラウザで開くと、この出力が得られます ここに画像の説明を入力

ここで、配列 $selected (選択されたプレーヤーの名前を含む) から値を抽出し、それをデータベースにアップロードしたいと考えています。私は次のようにこれをやろうとします:

foreach ($selected as $player){
    $sql = mysql_query('INSERT INTO `team`(`player_name`) VALUES ("$player")') 
    or die(mysql_error());
    print ($player); 
    echo'<br>';         
`   }

上記のコードに問題があると思われます。上記のコードを実行すると、データベースには配列名自体のみが含まれ、配列の実際の値は含まれません。次の図のように: ここに画像の説明を入力

配列の値ではなく配列名がデータベースに保存される理由について、誰かが私を正しい方向に向けることができれば、それは大歓迎です。

前もって感謝します。

4

3 に答える 3

0

文字列を一重引用符ではなく二重引用符で囲む必要があります。$player のような一重引用符で囲まれた文字列変数は、そこでテキストとして解釈される値に置き換えられません。

于 2013-10-06T14:12:29.220 に答える
0

これを使って:

'INSERT INTO `team`(`player_name`) VALUES ("' . $player . '")'

これの代わりに:

'INSERT INTO `team`(`player_name`) VALUES ("$player")'
于 2013-10-06T14:12:33.293 に答える
0

次のコードを自分のコードに置き換えるだけで、効率的に機能します。

foreach ($selected as $player){
    $sql = mysql_query("INSERT INTO `team`(`player_name`) VALUES ('$player')") 
    or die(mysql_error());
    echo "$player<br />";          
   }
于 2013-10-06T14:20:14.597 に答える