Insérer dans la base de données à partir d'un checkbox

Insérer dans la base de données à partir d'un checkbox - PHP - Programmation

Marsh Posté le 22-03-2015 à 21:55:09    

bonjour j'ai un problème . je vais afficher des valeurs a partir de ma base de données oracle sous forme d'un tableau puis devant chaque ligne j'ai un ckeckbox et je veux insérer les lignes cochées dans une autre table de la base de données et le problème au niveau de l'insertion lorsque je clique sur le bouton effectuer que l'insertion de la dernière ligne s'effectue que ce soit elle est cochée ou pas .
voici mon code :

Code :
  1. <table >
  2. <?php
  3. //connexion à la base de données
  4. $connexion = oci_connect('****', '****','localhost/XE');
  5. //récupération des insertions dans la table division
  6. $sql="select * from div ";
  7. $statement = oci_parse($connexion, $sql);
  8. while ($row_nom = oci_fetch_array($stat)) {
  9. $id=$row_nom['ID'];
  10. $X=$row_nom['ABS'];
  11. $Y=$row_nom['ORD'];
  12. ?>
  13. //affichage des insertion sous forme d'un tableau avec un checkbox devant chaque ligne  
  14. <td><input type="checkbox" value= "<?php echo $id ; ?>" name="choix[]"/>
  15. <td ><?php echo $id ; ?></td>
  16. <td><?php echo $abs ; ?></td>
  17. <td><?php echo $ord ; ?></td>
  18. </tr>
  19. <?php } ?>
  20. <tr align="center">
  21. <td><input type="submit" name="effectuer" value="Effectuer"  /></td>
  22. </tr>
  23. <?php
  24. if(isset($_POST['effectuer'])){
  25. $conn = oci_connect('****', '****','localhost/XE');
  26. //récupération des lignes cochées  
  27. $array = $_POST['choix'];
  28. for($i=0;$i<sizeof($array);$i++){
  29. //insertion dans la base //mon problème ici  l'insertion dans la base se fait pour la dernière ligne  
  30. $query = "INSERT INTO tab (ID,ABS,ORD) VALUES ('$array[$i]','$abs','$ord') ";
  31. $stat = oci_parse($conn, $query);
  32. }}?>
  33. </table>


s'il vous plaît j'ai besoin de votre aide et merci d'avance


Message édité par nihel3007 le 26-03-2015 à 14:30:36
Reply

Marsh Posté le 22-03-2015 à 21:55:09   

Reply

Marsh Posté le 23-03-2015 à 10:58:00    

1) merci d'utiliser la balise code (pour faciliter la lecture de tout code avec l'indentation)
2) trop cool de mettre ton id/mdp de connexion à la BD sur un forum public
3) ton code est franchement moche : aucune séparation entre l'affichage, le traitement des données et la gestion des actions (cf la notion de MVC)
4) Ton HTML date des années 90 :sweat: Et un tableau dans un tableau :pt1cable:


Message édité par rufo le 23-03-2015 à 10:58:37

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-03-2015 à 04:37:15    

je vois 2 variables non définies à la ligne 20 et 21 : $abs et $ord, je suppose que c'est le $X et $Y de la ligne 14 et 15....


---------------
[Feed-back]
Reply

Marsh Posté le 28-03-2015 à 12:05:24    

oui j'ai corrigé dans mon code mais ce n'est pas le problème  
:??:

Reply

Marsh Posté le 28-03-2015 à 17:26:53    

Il est préférable d'utiliser count au lieu de sizeof (qui est un alias)
Et perso je sortirai ça de la fonction en le mettant dans une variable pour éviter des soucis de pointeur interne.
 

Code :
  1. $size_array = count($array);
  2. for($i=0; $i < $size_array; $i++){
  3. // reste du code


 
edit: foreach peut être interessant dans ton cas


Message édité par FBZ le 28-03-2015 à 17:32:43

---------------
[Feed-back]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed