2013-10-06 6 views
0

У меня есть массив, содержащий $ player_ids. Массив был получен в форме, которую пользователь использовал для выбора своей команды. Затем я запрашиваю базу данных с массивом $ player_ids. Как таковой:PHP - Загрузка данных в базу данных с помощью цикла

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); 

Приведенный выше код работает, и когда я открываю его в моем браузере я получаю этот выход enter image description here

Теперь я хочу, чтобы извлечь значения из массива $ выбранных (который содержит имена выбранных игроков) и загрузить его в базу данных. Я пытаюсь сделать это следующим образом:

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

Im подозревая код выше, где проблема возникает, когда приведенный выше код выполняется в базе данных содержится только само имя массива, а не фактические значения массива.. Как показано на следующем рисунке: enter image description here

Если кто-то может указать мне в правильном направлении, то почему имя массива, а не его значения будет сохранено в базе данных, было бы весьма полезно.

Заранее спасибо.

ответ

0

Вы должны поместить двойные кавычки вокруг своей строки вместо одиночных кавычек. В одиночных кавычках переменные, такие как $ player, не заменяются их значением, которое интерпретируется там как текст.

0

использовать это:

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

вместо этого:

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

Просто замените следующий код с ОДИН кодой, и она будет работать эффективно.

foreach ($selected as $player){ 
    $sql = mysql_query("INSERT INTO `team`(`player_name`) VALUES ('$player')") 
    or die(mysql_error()); 
    echo "$player<br />";   
    } 
Смежные вопросы