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:

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>
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
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>
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 !
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