php pdo : insertion multiple dans la base de données
Posté : 09 juin 2015, 17:55
Je n'arrive pas à faire une insertion multiple dans la base de données.
Voici le code :
Voici le résultat de la boucle while :
id nom_page
1 page1
2 page2
3 page3
Ce que je veux faire, c'est quand je clique sur un des checkbox de la page1, le resultat se retrouve avec l'id correspondant.
Actuellement quand je coche un des checkbox de la page1 et/ou page2 ça me renvoit toujours le résultat dans l'id 3
Voici le code :
<?php
try
{
$connexion_base_de_donnees = new PDO('coonexion à la base de données');
$connexion_base_de_donnees->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$connexion_base_de_donnees->exec('SET NAMES utf8');
}
catch (Exception $e)
{
die(sprintf('%s dans %s à la ligne %d : %s', get_class($e), $e->getFile(), $e->getLine(), $e->getMessage()));
}
$connexion = $connexion_base_de_donnees->prepare("SELECT id, nom_page, description, level FROM acces");
$connexion->execute();
while ($valeurs = $connexion->fetch())
{
?>
<tr>
<td><?php echo $valeurs['nom_page']; ?></td>
<td><?php echo $valeurs['description']; ?></td>
<td><input type="checkbox" name="perm[<?php echo $valeurs['nom_page']; ?>][]" value="voir" /></td>
<td><input type="checkbox" name="perm[<?php echo $valeurs['nom_page']; ?>][]" value="ajouter" /></td>
<td><input type="checkbox" name="perm[<?php echo $valeurs['nom_page']; ?>][]" value="mettre_a_jour" /></td>
<td><input type="checkbox" name="perm[<?php echo $valeurs['nom_page']; ?>][]" value="supprimer" /></td>
</tr>
<?php
}
if(isset($_POST['envoie']))
{
if (isset($_POST['perm']))
{
foreach($_POST['perm'] as $oui => $ok)
{
if (is_array($_POST['perm'][$oui]))
{
$ok = implode(', ', $ok);
}
$ajouter = $connexion_base_de_donnees->prepare("UPDATE acces SET level = :level WHERE id = :id");
$ajouter->bindParam(':level', $a);
$ajouter->bindParam(':id', $page_n);
$ajouter->execute();
echo 'Vous avez choisit ' .$oui. ' pour valeur ' .$ok. ' et pour acces ' .$a. '<br />';
}
}
}
$connexion_base_de_donnees = null;
Voici le résultat de la boucle while :
<form action="index.php" method="post">
<table>
<tr>
<th rowspan="2">Pages</th>
<th rowspan="2">Titre / Code / Nom</th>
<th colspan="4" class="titre_tableau">Droits Attribués</th>
</tr>
<tr>
<th class="sous_titre_tableau">Voir</th>
<th class="sous_titre_tableau">Ajouter</th>
<th class="sous_titre_tableau">Metrre à jour</th>
<th class="sous_titre_tableau">Supprimer</th>
</tr>
<tr>
<td>page1</td>
<td>page numéro 1</td>
<td><input type="checkbox" name="perm[page1][]" value="voir" /></td>
<td><input type="checkbox" name="perm[page1][]" value="ajouter" /></td>
<td><input type="checkbox" name="perm[page1][]" value="mettre_a_jour" /></td>
<td><input type="checkbox" name="perm[page1][]" value="supprimer" /></td>
</tr>
<tr>
<td>page2</td>
<td>page numéro 2</td>
<td><input type="checkbox" name="perm[page2][]" value="voir" /></td>
<td><input type="checkbox" name="perm[page2][]" value="ajouter" /></td>
<td><input type="checkbox" name="perm[page2][]" value="mettre_a_jour" /></td>
<td><input type="checkbox" name="perm[page2][]" value="supprimer" /></td>
</tr>
<tr>
<td>page3</td>
<td>page numéro 3</td>
<td><input type="checkbox" name="perm[page3][]" value="voir" /></td>
<td><input type="checkbox" name="perm[page3][]" value="ajouter" /></td>
<td><input type="checkbox" name="perm[page3][]" value="mettre_a_jour" /></td>
<td><input type="checkbox" name="perm[page3][]" value="supprimer" /></td>
</tr>
Vous avez choisit page1 pour valeur voir et pour acces <br />Vous avez choisit page2 pour valeur voir et pour acces <br />Vous avez choisit page3 pour valeur voir et pour acces <br />
</table>
<input type="submit" name="envoie" value="Envoyer" />
</form>
Structure de la base de données:id nom_page
1 page1
2 page2
3 page3
Ce que je veux faire, c'est quand je clique sur un des checkbox de la page1, le resultat se retrouve avec l'id correspondant.
Actuellement quand je coche un des checkbox de la page1 et/ou page2 ça me renvoit toujours le résultat dans l'id 3