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
?>
Configuration: Windows XP Internet Explorer 6.0

10 réponses

  1. Aucun
     
    Bonjour,

    Le problème ne vient pas du fait que tu à mis ton form dans la boucle,ainsi que ton bouton submit?
    0
  2. 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
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. mickaelm30 Messages postés 229 Statut Membre 12
     
    UP
    0
  9. mickaelm30 Messages postés 229 Statut Membre 12
     
    up !
    0
  10. 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