2015-04-24 5 views
0

I ont case à cocher multiples avec le même nom d'entrée de ce typeInsérer plusieurs valeurs de case à cocher dans plusieurs lignes dans une table?

<input type="checkbox" name="pop[]" value="pop1">pop1<br> 
<input type="checkbox" name="pop[]" value="pop2">pop2<br> 
<input type="checkbox" name="pop[]" value="pop3">pop3<br> 
<input type="checkbox" name="pop[]" value="pop4">pop4 <br> 
<input type="checkbox" name="pop[]" value="pop5">pop5<br> 
<input type="checkbox" name="pop[]" value="pop6">pop6 <br> 
<input type="checkbox" name="pop[]" value="pop7">pop7<br> 
<input type="checkbox" name="pop[]" value="pop8">pop8 <br> 

La table de base de données contient deux colonnes (ID et POPNAME).

J'ai besoin tous les pop vérifié inséré dans la base de données en ligne séparée, mais avec le même ID si ceci est mon PHP:

$pop = implode(',', $_POST['pop']); 
mysql_query("INSERT INTO pops (id, popname) VALUES (LAST_INSERT_ID(), '$pop')"); 

Mais ce ne fonctionne pas. J'ai essayé de coller à ce answer faire exploser puis utiliser pour chaque mais ne fonctionne pas non plus. Ceci est le code foreach:

$pop = implode(',', $_POST['pop']); 
$pops = explode(',', $pop); 
foreach ($pops as $pop) 
{ 
    mysql_query("INSERT INTO pops (id, popname) VALUES (LAST_INSERT_ID(), '$pop')"); 
} 

Ai-je raté quelque chose!

+0

Qui -1 s'il vous plaît me dire pourquoi? – adnan

Répondre

1

C'est résolu.

problème est $pop défini deux fois un comme var autre dans foreach

Ainsi, après renommer la première var tout ok

$popimp = implode(',', $_POST['pop']); 
$pops = explode(',', $pop); 
foreach ($pops as $pop) 
{ 
mysql_query("INSERT INTO pops (id, popname) VALUES (LAST_INSERT_ID(), '$pop')"); 
} 
1

AOP php: Base de données code de connexion:

<?php 
$dbhost = 'localhost'; 
$dbname = 'yourDB'; 
$dbuser = 'root'; 
$dbpass = ''; 

try { 
    $db = new PDO("mysql:host={$dbhost};dbname={$dbname}",$dbuser,$dbpass); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 

catch(PDOException $e) { 
    echo "Connection error: ".$e->getMessage(); 
} 
?> 

et le code PHP:

$pop= implode(', ', $_POST['pop']); 
$statement = $db->prepare("INSERT INTO popTable (pop) VALUES (?)"); 
$statement->execute(array($pop)); 
$success_message = "Order's has been inserted successfully."; 

html:

<form action="pop_form"> 
     <input type="checkbox" name="pop[]" value="pop1">pop1<br> 
     <input type="checkbox" name="pop[]" value="pop2">pop2<br> 
     <input type="checkbox" name="pop[]" value="pop3">pop3<br> 
     <input type="checkbox" name="pop[]" value="pop4">pop4 <br> 
     <input type="checkbox" name="pop[]" value="pop5">pop5<br> 
     <input type="checkbox" name="pop[]" value="pop6">pop6 <br> 
     <input type="checkbox" name="pop[]" value="pop7">pop7<br> 
     <input type="checkbox" name="pop[]" value="pop8">pop8 <br> 
    <input type="submit" value="Submit"/> 
</form>