Affichage update

mickaelm30 Messages postés 229 Statut Membre -  
hanagi Messages postés 141 Statut Membre -
Bonjour,
Mon code est celui ci-dessous, mon probleme est que je dois cliqué 2 fois sur modifier pour que le produit soit mis à jour dans la BDD et dans l'affichage! J'espere que vouis trouverez la solution, merci d'avance!!

<?php
//connexion à mysql
mysql_connect("localhost", "root", "") or die ("Erreur de connexion sur mysql.");
mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");

$req=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype, poids, description FROM produit order by numprod");

echo "<p align=center><table border=1><tr><TH align='center'>Num</TH><TH align='center'>Nom</TH>
<TH align='center'>Prix</TH><TH align='center'>Garantie</TH>
<TH align='center'>Type</TH><TH align='center'>Poids</TH><TH align='center'>Description</TH><th>Choix</th></tr><tr>" ;

while($donnees=mysql_fetch_assoc($req))

{
?>

<form action="modifie2.php" method="POST">
<td><input type='text' name='numprod' value='<?php echo $donnees['numprod'];?>' size='1'></td>
<td><input type='text' name='nomprod' value='<?php echo $donnees['nomprod']; ?>' size='25'></td>
<td><input type='text' name='prixprod' value='<?php echo $donnees['prixprod']; ?>' size='4'></td>
<td><input type='text' name='garantie' value='<?php echo $donnees['duréegarantie']; ?>' size='2'></td>
<td><input type='text' name='nomtype' value='<?php echo $donnees['nomtype']; ?>' size='13'></td>
<td><input type='text' name='poids' value='<?php echo $donnees['poids']; ?>' size='3'></td>
<td><input type='text' name='description' value='<?php echo $donnees['description']; ?>' size='50'></td>
<td><input type='submit' name='valider' value='Modifier' style='border-style: solid; border-width: 1; background-color: #FF2400; color: #FFFFFF'> </td>

</tr></p>
</form>

<?php
}

mysql_close();
?>
</table>

<?php
//connexion à mysql
mysql_connect("localhost", "root", "") or die ("Erreur de connexion sur mysql.");
mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");

@@$num=$_POST['numprod'];
@@$nom=$_POST['nomprod'];
@@$prix=$_POST['prixprod'];
@@$garantie=$_POST['garantie'];
@@$poids=$_POST['poids'];
@@$type=$_POST['nomtype'];
@@$description=$_POST['description'];

$req2=mysql_query("UPDATE produit SET nomprod='$nom', prixprod='$prix', duréegarantie='$garantie', nomtype='$type', poids='$poids',description='$description' WHERE numprod='$num'");

mysql_close(); // Déconnexion de MySQL
?>
A voir également:

10 réponses

Aucun
 
Bonjour,

Le problème ne vient pas du fait que tu à mis ton form dans la boucle,ainsi que ton bouton submit?
0
mickaelm30 Messages postés 229 Statut Membre 12
 
non je vien de mettre mon bouton submit hors de la boucle et la mis à jour ne se fait carrément plus..mais merci quand meme!

tu aurais pas une autre idée par hasard?
0
hanagi Messages postés 141 Statut Membre 3
 
salut,
Essaie d'inclure le programme d'affichage des données modifiées dans la page d'action de ton formulaire, et enléve les : value='<?php echo $donnees['numprod'];?>... du formulaire .

ça peut marcher ;)
0
mickaelm30 Messages postés 229 Statut Membre 12
 
ça à l'air une bonne idée mais comment je fais pour ajouter les données modifiées dans l'action.

Je connais pas cette méthod^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hanagi Messages postés 141 Statut Membre 3
 
dans le formulaire, ne met pas de code php, seulement des zones des boutons...

Dans le code de la page d'action ajoute une partie php où tu met:
<?php
/aprés la connexion à la base et la selection de table:
$v=$_POST['num'] / num doit etre le nom de la zone de texte où tu saisi le numero d produit
$v1=$_POST['text1']/ text 1 le nom de la zone où tu saisi la valeur du premier champs à modifier
$v2=$_POST['text2']
$req = mysql_query('SELECT * FROM nomtable ') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req)){
$sql = "UPDATE nomtable SET champs1='".$v1."', champs2='".$v2."' WHERE numprod='".$v."' ";
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); }
}
/ ferme la connexion
?>

ça doit marcher
0
mickaelm30 Messages postés 229 Statut Membre 12
 
Ok mais dans le code que tu viens de me mettre, ils sont affiché ou tout mes produits??!
0
mickaelm30 Messages postés 229 Statut Membre 12
 
UP
0
mickaelm30 Messages postés 229 Statut Membre 12
 
[URL=https://imageshack.com/][IMG]http://img31.imageshack.us/img31/577/sitec.th.png[/IMG][/URL]
0
mickaelm30 Messages postés 229 Statut Membre 12
 
up !
0
hanagi Messages postés 141 Statut Membre 3
 
ah wé, pour l'affichage, voici ce que tu peux faire:
dans le tableau où les données doivent s'afficher tu crée uniquement la 1ère ligne (num, nom, prix...)
dans le méme tableau, c'est à dire la méme balise <table>...</table>, tu met

<?php
//connexion
$req = mysql_query('SELECT * FROM table ORDER BY num') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_array($req))
{echo '<tr><td>'.$data['numprod'].'</td><td>'.$data['nomprod'].'</td><td>'.$data['prixprod'].'</td></tr>';}
?>

de cette façon, pour chaque enregistrement dans la table, s'ajoute à ton tableau automatiquement une ligne, remplisse avec les données d'un produit.
0