Page 1 sur 1

Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 19:21
par dembawarsall
Bonjour
J’ai un tableau dont chaque ligne est alimentée par les données d’une table sql (donc le tableau et la table sont presque identiques) via une requête SELECT. Maintenant à la fin de chaque ligne du tableau dans une dernière colonne j’y ai ajouté une case à cocher.
Mon tableau comporte les colonnes suivantes: date,numero_piece,libellé,nomero_compte,libelle,debt,credit,solde.
Je souhaite une fois que je coche une case située à la fin d’une ligne du tableau, récupérer la totalité de l’enregistrement contenu dans cette ligne et que chaque colonne soit récupérée dans une variable comme ceci :
Colonne1=>dans $cl1
Colonne2=>dans $cl2
Colonne3=>dans $cl3
etc…
J’ai passé toute une journée pour obtenir ce résultat sans succès, je n’ai été capable que d’extraire la totalité de chaque ligne cochée en un seul bloc, ce qui est diffèrent de ce que je cherche à faire.

Je demande de l’aide
Mon code pour l’affichage du tableau:

Code : Tout sélectionner

<?php session_start(); ?> <html> <body> <?php if ( isset( $_POST['choixbk'] )) { //connection a la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=doc_actools1','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> <?php //Recherche du numero d'ordre dans la table "f_synopt" $req0 = $bdd->prepare('SELECT ordre FROM f_synopt WHERE denomination= :denomination'); $req0-> execute(array( 'denomination'=> $_SESSION['nom_projet'], )); while ($donnees0 = $req0->fetch()) { $numprjtbk = $donnees0['ordre']; } $req0->closeCursor(); ?> <form method='POST' action='blanc.php'> <table border="1"> <tr> echo "<th> Date</th>"; echo "<th> N° Piéce</th>"; echo "<th>Libellé</th>"; echo "<th> N° Cpte banque</th>"; echo "<th> Débit</th>"; echo "<th> Crédit</th>"; echo "<th> Solde</th>"; echo "<th> Prenom</th>"; echo "<th> Nom</th>"; echo "<th> Délégation</th>"; echo "<th> Localité</th>"; echo "<th> Nature</th>"; echo "<th> choix</th>"; </tr> <?php //Affichage des operations effectuées par le caissier $req = $bdd->prepare('SELECT n1.idk,n1.num_prjtbk, n1.jourbk, n1.numero_piecebk, n1.categoriebk,n1.libellebk,n1.numcptebkassoc,n1.debitbk, n1.creditbk, n1.soldebk,n2.idbk1,n2.num_prjtbk1,n2.prenombk, n2.nombk, n2.delegationbk, n2.localitebk, n2.naturebk, n2.enre_comptabk FROM brouillard_bank n1 LEFT JOIN brouillard_bank1 n2 ON n1.idk = n2.idbk1 WHERE num_prjtbk =:num_prjtbk AND num_prjtbk1 =:num_prjtbk1 AND delegationbk = :delegationbk AND localitebk = :localitebk AND enre_comptabk = :enre_comptabk AND direction = "E"'); $req-> execute(array( 'num_prjtbk'=> $numprjtbk, 'num_prjtbk1'=>$numprjtbk, 'delegationbk'=>$_SESSION['delegation'], 'localitebk'=>$_SESSION['localite'], 'enre_comptabk'=> 'N', )); $x= 1; while ($donneerbk= $req->fetch( )) { $x1=$x; echo "<tr ALIGN=center>"; echo "<td>".$donneerbk['jourbk']."</td>"; echo "<td>".$donneerbk['numero_piecebk']."</td>"; echo "<td>".$donneerbk['libellebk']."</td>"; echo "<td>".$donneerbk['numcptebkassoc']."</td>"; echo "<td>".$donneerbk['debitbk']."</td>"; echo "<td>".$donneerbk['creditbk']."</td>"; echo "<td>".$donneerbk['soldebk']."</td>"; echo "<td>".$donneerbk['prenombk']."</td>"; echo "<td>".$donneerbk['nombk']."</td>"; echo "<td>".$donneerbk['delegationbk']."</td>"; echo "<td>".$donneerbk['localitebk']."</td>"; echo "<td>".$donneerbk['naturebk']."</td>"; echo"<td><input type='checkbox' name='choix[]' value='".$donneerbk['jourbk']."".$donneerbk['numero_piecebk']."".$donneerbk['libellebk']."' ></td>"; } echo "</table>"; $req->closeCursor(); } ?> </table> <br><br></br> <input type="submit" value="enregistrer" name="enregistrer"> </form> </body> <html>
La page qui exécute l’instruction lorsque une ou plusieurs lignes sont cochées :

Code : Tout sélectionner

<html> <body> <?php if (isset($_POST['enregistrer'])) { if ($_POST['choix']) { foreach ($_POST['choix'] as $choix) { echo "le choix est ; ". $choix.'<br><br/>'; } } } ?> </body> </html>

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 20:05
par or 1
ce que je ferais : mettre l'id dans la valeur de la checkbox, refaire une requête sql avec un in (id1, id2 ...) dans le where, parcourir les résultats du select et mettre chaque champ dans le tableau souhaité.

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 20:37
par dembawarsall
Voulez vous etre plus precis avec un debut de bout de code comme exemple franchement je ne vous saisi pas surtout lorsque vous parlez de "mettre chaque champ dans le tableau souhaité"

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 20:44
par or 1
while ($donneerbk= $req->fetch( ))
{
$cl1[] = $donneerbk['jourbk'];
}

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 21:05
par dembawarsall
merci pour la promtitude de votre reaction mais malheureusement
il se trouve que j'ai appliqué votre methode mais le seul probleme est qu'a la suite du select s'en suivent plusieurs autres requettes (le code fait 1153 lignes) qui traitent des variables receuillies avec ce SELECT.
et aussi là, j'ai remarqué que lorsqu'il s'agit de cocher une seule ligne du tableau , aucun probléme, toutes les requettes fonctionnent correctement, mais dés que je selectionne plusieures lignes du tableau à la fois une seule ligne est traitée par "Validation_op_bk1.php" et compte tenu du fait que j'évite de mettre toutes les requettes dans la boucle while (ce que j'ai essayé et ca marche), je souhaiterais dés que je selectionne une ligne que je puisse directement recuperer tout au debut de la page "Validation_op_bk1.php" la donnée contenue dans chaque colonne du tableau dans une variable sans passer par une table pour les obtenir.

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 21:27
par or 1
ma solution règle le problème comme il est posé. mais ce que l'on a pas, c'est quel est le but de faire cela, car il peut y avoir une bien meilleure manière de faire.

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 31 mars 2022, 22:16
par dembawarsall
C'est un prossecus comptable ou l'aide comptable saisit les operation journalieres dans un journal (toutes les données qu'i saisi sont stockées via un formulaire dans la table A) et en fin de journée le chef comptable valide ces operations en listant cette table A via un tableau, il parcourt chaque ligne du tableau verifie pour verifier la regulaté de chaque operation (voire est ce toute les information que comporte chaque colonne est correct.
En validant une ligne, il coche une case situéé a la fin chaque ligne et appui sur un bouton "Enregistrer", puis sur une autre pag, il receuille chaque donnée de chaque colonne de l'enregistrement qu'il vient de valider dans une variable afin de pouvoir utiliser chacune de ces variable pour les inscrire dans les documents comptables classiques comme:
- la balance ,
- le grand livre des comptes
-Le journal general
etc ....
C'est dans cette derniere etape de receuil et de traitement des données ou j'ai probleme au debut du processus vous, me proposez de receuillir au debut du processus ces données dans une table apres les y avoir stocker ce qui suppose l'utilisation d'un requette select.
Tant qu'il s'agira de cocher une seule ligne et d'appuyer sur le bouton "enregistrement" pas de probleme votre methode fonctionne nickel, par contre s'il s'agit de valider plusieurs ligne a la fois ca ne passe pas seul un enregistrement est traité, à moins que je place toutes les requettes qui suivent le Select dans le while ce qui ne contribue pas à favoriser la performance que je souhaite, bref c'est pas pro comme je le comprend.

Re: Recuperer colonnes tableau avec cases à cocher

Posté : 01 avr. 2022, 16:14
par dembawarsall
Quelqu'un peut il me donner un coup de main ?