2017-02-04 23 views
0

表客場顏色有2列,4行:創建PHP FOM從表BD選擇多個取值

<?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」,從表MEC

+2

'$ sport'是一個數組,而不是一個字符串。你是否試圖在數據表中插入'$ sport'數組數據作爲逗號分隔值? –

+0

否。deportes表中idD的值是1,2,3,4。我想在mec表的字段idD中逐一插入這些值。 – albno

+0

這條語句的目的是什麼'$ idPersona = mysqli_insert_id($ conexion);'?除此之外,你還有其他任何* INSERT查詢嗎? –

回答

0

領域IDD如果print_r$_POST['fan'],你會看到這是數組。爲了得到陣列的每一個值,你應該遍歷它,用forforeach

$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

你好,再次。現在我還有其他問題,我需要保持從表格中選擇的值: <= name =「fan []」multiple =「multiple」><! ?PHP \t \t \t \t \t的foreach($ Deportes進行爲$ aficion)\t \t \t \t \t \t \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t echo「 \ n」 個; ? \t \t \t \t \t \t \t} \t \t \t \t \t> \t \t \t – albno

+0

進出口試圖使用這樣的功能: '函數verificarListaMultiple($陣列,$值) { 如果(in_array ($值,$陣列)) {回聲 '所選= 「選擇」'; }} 但是,有沒有辦法讓這些值。這將不勝感激某種幫助。謝謝 – albno