2017-02-04 3 views
0

В таблице DEPORTES имеет 2 колонки с 4 строками:Создание PHP ФОМ выбрать несколько значений извлекая из таблицы бд

<?php 
$sql = 'SELECT * FROM deportes'; 
$resul = mysqli_query($conexion, $sql); 

$deportes = array();  
while ($fila = mysqli_fetch_array($resul)) 
{ 
    $deportes[] = $fila; 
}  
?> 

Форма с выбрать несколько вариантов:

<select name="fan[]" multiple="multiple"> 
    <?php 
     foreach ($deportes as $aficion) 
     { 
      echo "<option value='".$aficion['idD']."'"; 
      echo " >{$aficion['nombreDep']} </option>\n"; 
     } 
    ?>    
</select> 

Получить значения из форма

<?php 
if (isset($_POST['fan'])) 
    { 
    $sport = $_POST['fan']; 
    } 
?> 

Сейчас этот

<?php $sport = mysqli_real_escape_string($conexion, $sport); ?> 

Таким образом, вставить значения в другой таблице

$idPersona = mysqli_insert_id($conexion);   
$sql = "INSERT INTO mec(id,idD) VALUES ('$idPersona','$sport') "; 

И результат я получаю значение «0» в поле IDD из таблицы тес

+2

'$ sport' - это массив, а не строка. Вы пытаетесь вставить данные массива '$ sport' в виде значений, разделенных запятой, в таблице? –

+0

№ Значения idD в таблице депортированных: 1, 2, 3, 4. Я хотел бы вставить в поле idD в таблице mec эти значения по одному. – albno

+0

Какова цель этого оператора '$ idPersona = mysqli_insert_id ($ conexion);'? У вас есть * любой другой запрос 'INSERT', кроме этого? –

ответ

0

Если вы print_r ваш $_POST['fan'], вы будете см., что это массив. Для того, чтобы получить все значения массива вы должны итерацию над ней, с for или foreach:

$idPersona = mysqli_insert_id($conexion);   
foreach ($_POST['fan'] as $sport) { 
    echo $sport; // you will see that now it is string 
    $sql = "INSERT INTO mec(id,idD) VALUES ('$idPersona','$sport') "; 
    // execute your query 
} 

И, конечно, вы должны перейти на подготовленные заявления для защиты кода от SQL-инъекций. Это question даст вам начало.

+0

Спасибо, что так много :) – albno

+0

Здравствуйте, еще раз. Теперь у меня есть другая проблема, мне нужно сохранить значения, выбранные из формы: albno

+0

Im пытается использовать такую ​​функцию: 'функция verificarListaMultiple ($ массив $ значение) { если (in_array ($ цена, $ массив)) {эхо 'Selected = "выбрано"'; }} Но, нет никакого способа, чтобы сохранить значение. Было бы так оценил какую-либо помощь. Спасибо – albno

Смежные вопросы