Page 1 sur 2

réaffichage formulaire

Posté : 23 août 2006, 21:28
par basdom
bonsoir

j ai un formulaire de création de produits

j ai ensuite une page de consultation de ces produits avec leurs différentes caractéristiques

je souhaiterai d apres cette liste pouvoir en faisant un lien "modifier"
(jusque la je sais faire) réafficher mon formulaire avec les champs déja remplis afin de pouvoir les modifier

merci de m aider

basdom

Posté : 23 août 2006, 21:38
par charabia
Dans ton formulaire pré-remplie tu appelles juste les données contenues dans ta BDD et ce par le biais de l'ID que tu auras passé en paramètre pour identifier le produit en question.

Posté : 23 août 2006, 21:45
par basdom
bonsoir

je te remercie de ta réponse

mais je suis débutant pourrais tu m expliquer ou de me donner soit un code ou un tuto qui m expliquerai


merci

basdom

Posté : 23 août 2006, 21:52
par charabia
Tout ce que tu dois savoir c'est comment récupérer puis afficher les données en provenance d'une BDD. Pour ça c'est ici : http://phpdebutant.org/article66.php

La question sera ensuite de savoir comment récupérer des données bien précises selon un produit ? C'est dans ta requête que tout se passe.

Lorsque tu crées ta requête, tu dois appeler l'ID du produit en question, par exemple :
"SELECT nom FROM table_produit WHERE id=".$_GET['id'];
Où trouves-tu ce ID ? C'est un ID que tu passeras en variable par méthode GET (URL) sur chaque lien "modifier". Par exemple :

Code : Tout sélectionner

<a href="modif.php?id=1">produit 1</a>

Posté : 24 août 2006, 22:40
par basdom
bonsoir

je te remercie de m aider

probleme avec l id (ton post précédent)


voici mon code pour consulter mes produits
<?php

//crée la connexion 
$serveur     = "localhost";
$utilisateur = "root";
$motDePasse  = "";
$base        = "test";
$fichier     = "consult.php"; 


 mysql_connect($serveur,$utilisateur,$motDePasse) or die("Impossible de se connecter au serveur de bases de données.");
    
 mysql_select_db($base) or die("Base de données non trouvée.");	


//paramétrage de la requete 
$req="SELECT * from produits ";

$réponse=mysql_query($req);


echo '<center><table border="1" bgcolor="#FFFFFF">';
//on affiche les titres du tableau 
        echo '<tr>'; 		
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Référence</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Gencod</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Pcb</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">Spcb</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">haucol</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">larcol</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">loncol</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">pdbcol</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">colcou</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">coupal</font></b></td>'; 
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">uvcpal</font></b></td>';
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">pdbpal</font></b></td>';
        echo '<td bgcolor="#0000FF" align="center"><b><font size="2" color="#FFFFFF">volpal</font></b></td>';
       	echo '</tr>'; 

		
while($donnees = mysql_fetch_array($réponse))
{
echo '<tr>'; 
    echo '<td bgcolor="#FFFFFF"><font size="5"><a href="modif.php?id=1>'.$donnees['Ref'].'">'.$donnees['Ref'].'</font></td><br></a>';   
    echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Gencod'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Pcb'].'</font></td><br>';	
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Spcb'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['haucol'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['larcol'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['loncol'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['pdbcol'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['colcou'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['coupal'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['uvcpal'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['pdbpal'].'</font></td><br>';
	echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['volpal'].'</font></td><br>';	
	}

  echo '</tr>'; 
 


?>
ensuite j ai crée un code pour essayer d afficher

une page avec l id :
<?php

//crée la connexion 
$serveur     = "localhost";
$utilisateur = "root";
$motDePasse  = "";
$base        = "test";



mysql_connect($serveur,$utilisateur,$motDePasse) or die("Impossible de se connecter au serveur de bases de données.");
    
mysql_select_db($base) or die("Base de données non trouvée.");	

$reponse = mysql_query("SELECT * FROM produits WHERE id =".$_GET['id'])or die(mysql_error()) ; 

while ($donnees=mysql_fetch_array($reponse))


{
echo $données['Ref'];
}
 

?>
je devrais avoir la Ref sur laquelle j ai cliquez avec le premier code

voici ce que j obtiens:

"Notice: Undefined index: id in c:\program files\easyphp1-7\www\html\modif.php on line 16
Erreur de syntaxe près de '' à la ligne 1"


merci de m aider

basdom
[/php]

Posté : 24 août 2006, 23:47
par charabia
Le <a href="modif.php?id=1"> (tu avais oublié un ") était un exemple lol

Il ne faut pas recopier comme ça sans l'adapter à ton code. Le "1" correspond aux ID de tes produits. Tu dois les récupérer à partir de ta base.

Posté : 25 août 2006, 17:42
par basdom
bonsoir

ok merci pour ta réponse mais comment on récupère l' id

dans ma base

merci

basdom

Posté : 25 août 2006, 17:57
par charabia
Exactement de la même façon que tu récupères les autres données, comme Ref, Gencod...etc dans ton code plus haut.

Posté : 25 août 2006, 18:07
par basdom
bonsoir

pige pas

j ai deux enregitrements dans ma base un avec l id 1 l' autre avec l' id 2

qu est ce que je dois mettre a la place de cette ligne

echo '<td bgcolor="#FFFFFF"><font size="5"><a href="modif.php?id=1" '.$donnees['Ref'].'">'.$donnees['Ref'].'</font></td><br></a>';

pour que en cliquant sur ma ref je puisse arriver a mon fichier modif qui affiche la ref cliquée

merci

basdom

Posté : 25 août 2006, 20:42
par charabia
Je vais essayer d'expliquer :)

Alors dans ta table, chaque produit a un identifiant unique n'est-ce pas ? Il s'agit souvent de ID qui est clé primaire.

C'est de ce ID là dont je te parle. Je ne sais pas si ton Ref fait référence à cet ID, il faudrait la structure de ta table pour que je t'explique mieux.

Là dans l'exemple que tu me redonnes, tu conserves toujours ce id=1 alors que cet ID doit être la donnée récupérée du champ ID de ta table.

Si tu as 2 enregistrements par exemple, dans ta boucle lorsque tu récupères les données, il faut le faire aussi pour ton champ ID comme tu le fait pour tous tes autres champs.

Tu comprends mieux ?

Posté : 25 août 2006, 21:21
par basdom
bonsoir

encore merci de ton aide

voici ce que j ai fait
juste extrait du code a partir de la boucle


while($donnees = mysql_fetch_array($réponse))
{

$id=$donnees["id"];


echo '<tr>';

echo '<td bgcolor="#FFFFFF"><font size="5"><a href="modif.php?id=$id"'.$donnees['Ref'].'">'.$donnees['Ref'].'</font></td><br></a>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Gencod'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Pcb'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['Spcb'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['haucol'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['larcol'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['loncol'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['pdbcol'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['colcou'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['coupal'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['uvcpal'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['pdbpal'].'</font></td><br>';
echo '<td bgcolor="#FFFFFF"><font size="5">'.$donnees['volpal'].'</font></td><br>';
}

echo '</tr>';




?>
et voila ce que ca me met sur ma page modif.php

" Notice: Undefined index: $id in c:\program files\easyphp1-7\www\html\modif.php on line 16
Erreur de syntaxe près de '' à la ligne 1"

Posté : 25 août 2006, 21:26
par DocType
code entre balises php...
montre ta requete ainsi que la structure de ta table stp

Posté : 25 août 2006, 21:37
par basdom
bonsoir

ma requete dans le fichier modif.php

$reponse = mysql_query("SELECT * FROM produits WHERE id =".$_GET['$id'])or die(mysql_error()) ;

la requete dans mon fichier de départ
$req="SELECT * from produits ";

la structure de ma table:
CREATE TABLE `produits` (
`id` varchar(5) NOT NULL default '',
`Ref` varchar(6) NOT NULL default '',
`Gencod` varchar(13) NOT NULL default '',
`Pcb` char(3) NOT NULL default '',
`Spcb` varchar(5) NOT NULL default '',
`haucol` char(3) NOT NULL default '',
`larcol` char(3) NOT NULL default '',
`loncol` varchar(5) NOT NULL default '',
`pdbcol` varchar(5) NOT NULL default '',
`colcou` varchar(5) NOT NULL default '',
`coupal` varchar(5) NOT NULL default '',
`uvcpal` varchar(5) NOT NULL default '',
`pdbpal` varchar(5) NOT NULL default '',
`volpal` varchar(5) NOT NULL default ''
) TYPE=MyISAM;


merci de votre aide

basdom

Posté : 25 août 2006, 21:54
par charabia
Ton id devrait être en INT, clé primaire et auto incrémenté.

APrès avoir fait ce changement, je ne vois pas trop ce qui te bloque. Tu réussis à récupérer toutes tes données Ref...etc en faisant $donnees['Gencod'].

Fait de même pour ton champ ID.

Posté : 25 août 2006, 22:04
par Invité
bonsoir

ca ne marche pas malgre tous vos conseils

sur la page modif ca me met
"Champ '$id' inconnu dans where clause"


basdom