Bonjour tout le monde,
J'ai un souci qui m'empoisonne un peu.
Sur un site j'ai un formulaire de contact où les données sont insérées dans une bdd.
Puis j'affiche tous le contenu de ma table dans un tableau html d'une page affiche_contact.php.
Je souhaite maintenant avoir la possibilité de modifier/supprimer les lignes.
J'ai déjà fait l'étape supprimer et ça marche nickel !
Cependant je galère pour l'update, et pour la bonne raison que je n'arive pas à afficher un seul éléments de ma base : c'est tout ou rien !
Dans mon tableau j'ai donc une colonne où il y a deux lien : supprimer/modifier.
Le but est lorsqu'on clique sur modifier, d'afficher le contenu de la ligne correspondant à l'id_contact cliqué et l'afficher dans des <input>.
On modifierai donc le contenu directement dans les input et on aurait un bouton "sauvegader" qui renverrait vers affiche_question mis à jour.
Comme je dis, je récupére parfaitement mon id_contact, ma requete est bonne, mais dés que je met un WHERE id_contact='$id_contact', on ne me renvoi plus rien. Comme j'ai dit, c'est soit toute la table soit rien
Aprés les grands discour, le code !
mon fichier affiche_contact.php:
Ensuite le fichier update.php, qui a pour but de réafficher des informations contact mais dans dans inputs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); mysql_select_db('ma_base',$db) or die('Erreur de selection '.mysql_error()); ?> <title>Mes contacts</title> <body> <table border="1"> <tr> <th width="10%">Nom</th> <th width="10%">Prenom</th> <th width="10%">Adresse</th> <th width="10%">E-mail</th> <th width="10%">Telephone</th> <th width="10%">Telephone Portable</th> <th width="20%">Message</th> <th width="10%">Date</th> <th width="10%">Action</th> </tr> <?php // lancement de la requete avec transformation du format de la date $sql = " SELECT id_contact, nom, prenom, adresse, email, tel,tel2, questions, DATE_FORMAT(date, '%d-%m-%Y') as datefr FROM contact_form "; // on lance la requête (mysql_query) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on recupere le resultat sous forme d'un tableau $data = mysql_fetch_array($req); while($data = mysql_fetch_array($req)) { // on affiche les informations des contacts echo '<tr><td>'.$data['nom'].'</td><td>'.$data['prenom'].'</td><td> '.$data['adresse'].''; echo ' </td><td>'.$data['email'].' '; echo '</td><td> '.$data['tel'].' </td>'; echo '<td>'.$data['tel2'].'</td>'; echo '<td>'.$data['questions'].'</td>'; echo '<td>'.$data['datefr'].'</td>'; echo '<td> <a href="supp.php?id_contact='.$data['id_contact'].'"> Supprimer</a>/ <a href="update.php?id_contact='.$data['id_contact'].'">Modifier</a> </td> </tr>'; } mysql_free_result ($req); ?> </table> </body> </html>
Mais j'ai le même souci dans ma table, dans le sens que dans affiche_contact, on ne me renvoit aucun résultat si ma table ne contient qu'un seul élément !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 <?php $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error()); mysql_select_db('ma_base',$db) or die('Erreur de selection '.mysql_error()); ?> <body> <table border="1"> <tr> <th width="10%">Nom</th> <th width="10%">Prenom</th> <th width="10%">Adresse</th> <th width="10%">E-mail</th> <th width="10%">Telephone</th> <th width="10%">Telephone Portable</th> </tr> <?php $id_contact=$_GET['id_contact']; echo $id_contact ;//pour vériier qu'on récupére le bon id_contact. OK //Si j'utilise cette requête on ne me renvoit aucun résultat, mais aucune erreur $sql = " SELECT * FROM contact_form WHERE id_contact = '$id_contact' "; //ci dessous on me renvoit bien mes informations dans mes inputs ! cependant c'est tout le contenu de la table qui est affiché $sql = " SELECT * FROM contact_form "; // on lance la requête (mysql_query) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); while($data = mysql_fetch_array($req)) { // on affiche les informations des contacts echo '<tr><td><input name="nom" type="text" id="nom" value='.$data['nom'].'></td>'; echo '<td><input name="prenom" type="text" id="prenom" value='.$data['prenom'].'></td>'; echo '<td><input name="adresse" type="text" id="adresse" value='.$data['adresse'].'></td>'; echo '<td><input name="email" type="text" id="email" value='.$data['email'].'></td>'; echo '<td><input name="tel" type="text" id="tel" value='.$data['tel'].'></td>'; echo '<td><input name="tel2" type="text" maxlength="10" size="10" id="tel2" value='.$data['tel2'].'></td></tr>'; } mysql_free_result ($req); ?> </table> </body> </html>
Le premier éléments afficher est donc en réalité le 2nd de la table...
Vous avez une idée pour me dépanner ?
Merci d'avance
Partager