Lien dans un tableau
Résolu
Bonjour,
J'ai actuellement un tableau contenant des informations d'une table de ma BDD. Ces infos sont rentrées via un formulaire. J'aimerai donc mettre l'ID du client en lien afin de pouvoir éditer son formulaire.
J'ai actuellement un tableau contenant des informations d'une table de ma BDD. Ces infos sont rentrées via un formulaire. J'aimerai donc mettre l'ID du client en lien afin de pouvoir éditer son formulaire.
4 réponses
-
Il faudrait être plus précis peut-être. Car si tu peux mettre les infos de ta BDD dans le tableau, pourquoi pas l'ID? Quel est le problème?
Et montrer ton code...
-
listeclient.php :
<?php require_once('connect.php'); /*Recherche*/ $q = isset($_GET['q']) && !empty($_GET['q'])?$_GET['q']:NULL; $strWhere = $q ? " Where id like '%$q%' OR nom_e like '%$q%' OR nom_cl like '%$q%' " : ''; /*Contenu du tableau*/ $requet="SELECT id, nom_e, civ, nom_cl, fixe, contrat FROM client_tb" .$strWhere; $resulta=mysql_query($requet) or die("Erreur ! <br>".mysql_error()."<br>Requête =<br>". $requet); ?> <form method="get" id="search" action=""> <label for="q">Recherche :</label> <input type="text" id="q" name="q" > <input type="submit" value="Ok" > </form> <h6><a onclick="open('formulaire.php', 'popup', 'scrollbars=1,resizable=1,height=750,width=750');return false;"> <input type="image" src='style/add.png' value="submit" ></a><span> <form ACTION="listeclient.php"> <input TYPE="image" src="style/refresh.png" name="submit" ></form></h6> <table id="rec"> <?php $NbrCol = 7; if($resulta){ echo "<th>ID</th><th>Entreprise</th><th>Civilité</th><th>Contact</th><th>Téléphone</th><th>Contrat</th>"; while($ligne=mysql_fetch_row($resulta)) { echo "<tr>"; foreach($ligne as $value){ echo'<td><a href=modif.php?='.$resulta.'">'.$value.'</a></td>'; /*echo "<td>".$value."</td>";*/ } echo "</tr>"; } } mysql_close(); ?> </table> </body> <footer> <div id="heure"></div> <script "type=text/javascript"> setInterval(function(){ document.getElementById('heure').innerHTML = new Date().toLocaleTimeString(); }, 1000); </script> <?php $date = date("d/m/Y"); Print("$date"); ?> </footer> </html>
formulaire.php:<html> <meta charset="utf-8" /> <head> <link rel="stylesheet" href="style/style.css" /> </head> <body> <form name="formulaire" action="traitement.php" method="POST"> <input id="ok" type="submit" value="Valider"/> <table> <tr> <td>Entreprise</td> <td><input type="text" name="nom_e" /></td> <td>Fixe</td> <td><input type="text" name="fixe" /></td> </tr> <tr> <td>Contact </td> <td><input type="text" name="nom_cl" /></td> <td> Mobile</td> <td><input type="text" name="mob" /></td> </tr> <tr> <td>Fonction</td> <td><input type="text" name="fonc" /> </td> <td>Fax</td> <td><input type="text" name="fax" /></td> </tr> <tr> <td>Civilité</td> <td><input class="radio" name="civ" value="Mme" checked type="radio"> Madame <input class="radio" name="civ" value="M." type="radio"> Monsieur</td> <td>Email</td> <td> <input type="text" name="mail"/></td> </tr> <tr> <td>Groupe</td> <td><select name="groupe" > <option value="particulier">Particulier</option> <option value="pro">Pro</option></select></td> <td>Web</td> <td> <input type="text" name="web" /></td> </tr> <tr> <td>Contrat</td> <td> <input name="contrat" value="non" checked type="radio"> Non <input name="contrat" value="oui" type="radio"> Oui </td> <td>Adresse</td> <td><input type="text" name="adr" /></td> </tr> <tr> <td>Ville</td> <td><input type="text" name="ville" /> </td> <td>CP</td> <td><input type="text" name="cp" /></td> </tr> </table> <h3>Infos</h3> <h3><textarea name="infos" rows="3" cols="85"></textarea><h3> <table> <tr> <td>Date</td> <td>Type d'inter</td> <td>Tech</td> <td>Commentaire</td> </tr> <tr> <td> <?php $date = date("d/m/Y"); Print("$date"); ?>
traitement.php :
function getPost($variableName,$defaultValue=''){ return isset($_POST[$variableName])?$_POST[$variableName]:$defaultValue; } if(isset($_POST)){ $nom_e = getPost("nom_e"); $nom_cl = getPost("nom_cl"); $fonc = getPost("fonc"); $civ = getPost("civ"); $groupe = getPost("groupe"); $contrat = getPost("contrat"); $fixe = getPost("fixe"); $mob = getPost("mob"); $fax = getPost("fax"); $mail = getPost("mail"); $web = getPost("web"); $adr = getPost("adr"); $ville = getPost("ville"); $cp = getPost("cp"); $infos = getPost("infos"); $date = getPost("date"); $inter = getPost("inter"); $tech = getPost("tech"); $comm = getPost("comm"); $sql = "INSERT INTO client_tb (nom_e, nom_cl, fonc, civ, groupe, contrat, fixe, mob, fax, mail, web, adr, ville, cp, infos, date, inter, tech, comm) VALUES ('$nom_e','$nom_cl','$fonc','$civ','$groupe','$contrat','$fixe','$mob','$fax','$mail','$web','$adr','$ville','$cp','$infos',( CURDATE($date)),'$inter', '$tech', '$comm')"; $requete = mysql_query($sql) or die( mysql_error()."<br>REQUETE:<pre>".$sql."</pre>"); if($requete) { echo("<br>L'insertion a ete correctement effectuee"); } else { echo("<br>L'insertion a echouee"); } } else { echo "<pre>Aucune donnee presente dans _POST </pre>"; } ?> <html> <meta charset="utf-8" /> echo "<script language='javascript'>window.close()</script>"; </html> -
J'ai toujours pas réussi, help svp ^^
-
ModérateurBonjour,
Si j'ai bien compris.. tu veux pouvoir cliquer sur une ligne... et ça te réaffiche le formulaire de création/modification avec les données correspondantes ?
Dans ce cas... quelque chose de ce genre devrait t'aller<?php //listeclient.php //--------------------------------------------------------- require_once('connect.php'); /*Recherche*/ $q = isset($_GET['q']) && !empty($_GET['q'])?$_GET['q']:NULL; $strWhere = $q ? " Where id like '%$q%' OR nom_e like '%$q%' OR nom_cl like '%$q%' " : ''; /*Contenu du tableau*/ $requet="SELECT id, nom_e, civ, nom_cl, fixe, contrat FROM client_tb " .$strWhere; $resulta=mysql_query($requet) or die("Erreur ! <br>".mysql_error()."<br>Requête =<br>". $requet); ?> <form method="get" id="search" action=""> <label for="q">Recherche :</label> <input type="text" id="q" name="q" > <input type="submit" value="Ok" > </form> <h6><a onclick="open('formulaire.php', 'popup', 'scrollbars=1,resizable=1,height=750,width=750');return false;"> <input type="image" src='style/add.png' value="submit" ></a><span> <form ACTION="listeclient.php"> <input TYPE="image" src="style/refresh.png" name="submit" ></form></h6> <table id="rec"> <?php $NbrCol = 7; if($resulta){ echo "<th>ID</th><th>Entreprise</th><th>Civilité</th><th>Contact</th><th>Téléphone</th><th>Contrat</th>"; while($ligne=mysql_fetch_row($resulta)) { echo "<tr>"; foreach($ligne as $value){ echo'<td><a href=formulaire.php?id='.$ligne['id'].'">'.$value.'</a></td>'; /*echo "<td>".$value."</td>";*/ } echo "</tr>"; } } mysql_close(); ?> </table> </body> <footer> <div id="heure"></div> <script "type=text/javascript"> setInterval(function(){ document.getElementById('heure').innerHTML = new Date().toLocaleTimeString(); }, 1000); </script> <?php $date = date("d/m/Y"); Print("$date"); ?> </footer> </html>
<?php //formulaire.php: //----------------------------------------------- require_once('connect.php'); // Recuperation de l'id si disponible dans l'URL $id = isset($_GET['id'])?$_GET['id']:NULL; //Lancement de la requete si $id if($id){ $requet="SELECT * FROM client_tb Where id='$id'"; $result=mysql_query($requet) or die("Erreur ! <br>".mysql_error()."<br>Requête =<br>". $requet); // on stocke le résultat dans un array $a_data = array(); while($res = mysql_fetch_array($result, MYSQL_ASSOC)) { $a_data[] = $res; } } ?> <html> <meta charset="utf-8" /> <head> <link rel="stylesheet" href="style/style.css" /> </head> <body> <form name="formulaire" action="traitement.php" method="POST"> <input id="ok" type="submit" value="Valider"/> <table> <tr> <td>Entreprise</td> <td><input type="text" name="nom_e" value="<?php echo $a_data['nom_e'];?>" /></td> <td>Fixe</td> <td><input type="text" name="fixe" value="<?php echo $a_data['fixe'];?>"/></td> </tr> <tr> <td>Contact </td> <td><input type="text" name="nom_cl" value="<?php echo $a_data['nom_cl'];?>"/></td> <td> Mobile</td> <td><input type="text" name="mob" /></td> </tr> <tr> <td>Fonction</td> <td><input type="text" name="fonc" /> </td> <td>Fax</td> <td><input type="text" name="fax" /></td> </tr> <tr> <td>Civilité</td> <td><input class="radio" name="civ" value="Mme" checked type="radio"> Madame <input class="radio" name="civ" value="M." type="radio"> Monsieur</td> <td>Email</td> <td> <input type="text" name="mail"/></td> </tr> <tr> <td>Groupe</td> <td><select name="groupe" > <option value="particulier">Particulier</option> <option value="pro">Pro</option></select></td> <td>Web</td> <td> <input type="text" name="web" /></td> </tr> <tr> <td>Contrat</td> <td> <input name="contrat" value="non" checked type="radio"> Non <input name="contrat" value="oui" type="radio"> Oui </td> <td>Adresse</td> <td><input type="text" name="adr" /></td> </tr> <tr> <td>Ville</td> <td><input type="text" name="ville" /> </td> <td>CP</td> <td><input type="text" name="cp" /></td> </tr> </table> <h3>Infos</h3> <h3><textarea name="infos" rows="3" cols="85"></textarea><h3> <table> <tr> <td>Date</td> <td>Type d'inter</td> <td>Tech</td> <td>Commentaire</td> </tr> <tr> <td> <?php $date = date("d/m/Y"); Print("$date"); ?>
Je ne t'ai complété que les premières données... je te laisse faire les suivantes histoire que tu comprennes comment faire.
Cordialement,
Jordane-
-
Modérateur@DilidimAu temps pour moi...
Je n'avais pas vu que tu avais utilisé mysql_fetch_row
Utilises plutôt : mysql_fetch_arraywhile($ligne=mysql_fetch_array($resulta)) { echo "<tr>"; foreach($ligne as $value){ echo'<td><a href=formulaire.php?id='.$ligne['id'].'">'.$value.'</a></td>'; /*echo "<td>".$value."</td>";*/ } echo "</tr>"; } -
@jordane45Les informations du tableau sont en double après avoir modifié mysql_fetch_row en mysql_fetch_array.
Autre souci, lorsque que clic sur le lien pour éditer le formulaire les informations ne remontent pas. Notice: Undefined index: nom_e. -
Modérateur@Dilidim
Les informations du tableau sont en double après avoir modifié mysql_fetch_row en mysql_fetch_array.
Modifie en mysql_fetch_assoc dans ce cas...while($ligne=mysql_fetch_assoc($resulta)) { echo "<tr>"; foreach($ligne as $value){ echo'<td><a href=formulaire.php?id='.$ligne['id'].'">'.$value.'</a></td>'; /*echo "<td>".$value."</td>";*/ } echo "</tr>"; }
Autre souci, lorsque que clic sur le lien pour éditer le formulaire les informations ne remontent pas. Notice: Undefined index: nom_e.
... essayes ça<?php //formulaire.php: //----------------------------------------------- require_once('connect.php'); // Recuperation de l'id si disponible dans l'URL $id = isset($_GET['id'])?$_GET['id']:NULL; //Lancement de la requete si $id if($id){ $requet="SELECT * FROM client_tb Where id='$id'"; $result=mysql_query($requet) or die("Erreur ! <br>".mysql_error()."<br>Requête =<br>". $requet); $a_data = mysql_fetch_assoc($result); } ?> -
@jordane45ça fonctionne, merci !
Par contre quand je clic sur mon bouton "ajouter", il y a une erreur. Comme il n'y a pas d'info à récupérer c'est logique... Faut il alors une nouvelle page "modif.php" par exemple pour ne pas confondre la demande ajouter et celle pour modifier ?
-