2016-11-06 53 views
1

好傢伙即時通訊嘗試後幾個清單值到一個表在我的數據庫,但只需要一個單一的值到表...查詢清單併發布多個結果表中的MySQL

Im做它像這樣的:

的形式爲:

<?php foreach($users as $user): ?> 
         <input type="checkbox" name="tipoinsertos" value="<?= $user['tipoinsertom']; ?>"> <?= $user['tipoinsertom']; ?> 
         <?php endforeach; ?> 

這是我的帖子格式:

$data = array('tipoinsertos' => $_POST['tipoinsertos']); 

try { 

    $dbh = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $query = "INSERT INTO barrasinternas (tipoinsertos) VALUES (:tipoinsertos)"; 


    $sth = $dbh->prepare($query); 
    $sth->execute($data); 
    echo "&iexcl;A&ntilde;adida Exitosamente!"; 
    } 
catch(PDOException $e) 
    { 
    echo $sql . "<br>" . $e->getMessage(); 
    } 
$dbh = null; 
?> 

檢查此打印:

http://imgur.com/a/WRhFd

所以,我檢查了所有的3個值,但只有一個是我的表。

+1

'NAME = 「tipoinsertos」'需要被當作數組'NAME = 「tipoinsertos []」' –

回答

0

首先,使用數組爲你輸入名字tipoinsertos[]

<input type="checkbox" name="tipoinsertos[]" ... 

那麼你也沒告訴你是如何得到$data但你需要迭代和循環莫名其妙地執行該查詢。通過將它構建成一個大的查詢值,或者通過重複執行一個值來執行另一個語句。 Here's a possible solution

<?php 

$users = [ 
    ['tipoinsertom' => 'Jonatan'], 
    ['tipoinsertom' => 'jeff'], 
    ['tipoinsertom' => 'joe'], 
]; 

?> 

<form method="POST"> 

<?php foreach($users as $user): ?> 
    <input type="checkbox" name="tipoinsertos[]" value="<?= $user['tipoinsertom']; ?>"> <?= $user['tipoinsertom']; ?> 
<?php endforeach; ?> 

    <input type="submit" value="Submit"/> 
</form> 

<?php 

// returns an intance of PDO 
// https://github.com/jpuck/qdbp 
$dbh = require __DIR__.'/tipoin_Dxa05i_A.pdo.php'; 


if(!empty($_POST['tipoinsertos'])){ 
    // prepare the query once 
    $query = "INSERT INTO barrasinternas (tipoinsertos) VALUES (:tipoinsertos)"; 
    $sth = $dbh->prepare($query); 

    // iterate through list 
    foreach($_POST['tipoinsertos'] as $tipoinsertos){ 
     $sth->execute(['tipoinsertos' => $tipoinsertos]); 
    } 

    // success 
    echo "&iexcl;A&ntilde;adida Exitosamente!"; 
    $dbh = null; 
} 
+0

我已經更新OP顯示在那裏我得到$數據我..我 在$ sth-> execute(['tipoinsertos'=> $ tipoinsertos])中獲得語法錯誤; 不知何故,但在我的表中它顯示「數組」。 –

+0

沒錯,因爲你現在正在做的方式是你試圖隱式地將一個完整的數組值賦給一個只能用於一個值的字符串。看到我的答案中的差異,並注意執行時如何遍歷數組。 –

+0

謝謝,經過一夜的睡眠,我已經想通了! –