Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2586 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Update multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Update multiple

n°1349782
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 19-04-2006 à 15:43:08  profilanswer
 

Bonjour, j'ai une petite question.
 
Je voudrais faire une mise à jour sur plusieurs lignes de ma base en même temps. Je m'explique, sur chacune de mes lignes, j'ai une données "classement" ("class" dans la base), qui me permet via une admin de modifier l'ordre d'apparation sur mon site de la façon que je veux. Voici le code :
 

Code :
  1. if($_POST['envoi'])
  2. {
  3. include("../connect.php" );
  4. $class = $_POST['class'];
  5. mysql_query("UPDATE `$tableRef` SET class='$class' WHERE id=$ID_actualite" );
  6. echo "<center><table border=0 cellpadding=5 cellspacing=0  width=300><tr><td align=center><div class=ok>Modification effectuée</div></td></tr><tr></table></center>";
  7. mysql_close($db);
  8. }
  9. else{
  10. include("../connect.php" );
  11. $result = mysql_query("select * from `$tableRef` ORDER BY class DESC" );
  12. $num = mysql_num_rows($result);
  13. ?>
  14. <center><B><?php echo $num; ?> R&eacute;sultat(s)</B></center>
  15. <form name="modif" method='post' action='adm_class_ref.php' OnSubmit="return(accSub());">
  16. //ici j'affiche mon tableau qui va me permettre de changer mes classements à l'aide d'une liste déroulante.
  17. <input type="submit" class=bouton name="envoi" value="Modifier le classement">
  18. </form>


 
Donc quand je clique sur Valider les modif, je rentre dans le "if" et je voudrais que ça m'update dans la table le ou les classements que j'ai modifié. Mais pour l'instant ça le fais pas avec le code que j'ai... Est-ce quelqu'un peut me dire où est mon erreur ?
 
Merci d'avance.

mood
Publicité
Posté le 19-04-2006 à 15:43:08  profilanswer
 

n°1349805
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 19-04-2006 à 16:02:28  profilanswer
 

En fait ça doit être à ce niveau :
 

WhiskyWalker a écrit :

Code :
  1. $class = $_POST['class'];
  2. mysql_query("UPDATE `$tableRef` SET class='$class' WHERE id=$ID_actualite" );




 
Faut que passe par une boucle For ou un truc comme ça ?

n°1349849
Djebel1
Nul professionnel
Posté le 19-04-2006 à 16:39:22  profilanswer
 

Le problème c'est quoi ? rien ne marche ou ça ne met à jour qu'une seule ligne ?
 
Dans le cas où rien ne marche :  
- tu as vérifié si $_POST['class'] contenait qqch ?
- $ID_actualite est défini quelque part ?
- tu as fait un echo de ta requete SQL ?
- tu as vérifié que la condition if($_POST['envoi']) s'effectuait ?
 
Sinon c'est super pas sécurisé comme requete, tu dois protéger les entrées utilisateurs avec mysql_real_escape_string avant de les envoyer à la base

Message cité 1 fois
Message édité par Djebel1 le 19-04-2006 à 16:40:37
n°1349850
DEns91
Posté le 19-04-2006 à 16:39:32  profilanswer
 

WhiskyWalker a écrit :

Bonjour, j'ai une petite question.
 $class = $_POST['class'];  
 mysql_query("UPDATE `$tableRef` SET class='$class' WHERE id=$ID_actualite" );


 
Slt dans ta clause where tu a mis  :: WHERE id=$ID_actualite.  
 
La variable $ID_actualite sors d'où ??  
 
Il manque a mon avis une ligne du style $ID_actualite= $_POST['ID....'];
A+
 

n°1349879
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 19-04-2006 à 17:01:50  profilanswer
 

Djebel1 a écrit :

Le problème c'est quoi ? rien ne marche ou ça ne met à jour qu'une seule ligne ?


 
Ca ne met pas à jour les données de ma table en fait.
 

Djebel1 a écrit :

- tu as vérifié que la condition if($_POST['envoi']) s'effectuait ?


 
Oui, ça ça marche.
 

Djebel1 a écrit :

- tu as vérifié si $_POST['class'] contenait qqch ?


 
Je viens de tester et ça me sort 0 comme valeur... Ca dois venir de là. Je met ce que j'ai dans mon form :
 

Code :
  1. <table width="85%" border="0" cellspacing="0" cellpadding="2" align="center">
  2.  <tr><td align=center><input type="submit" class=bouton name="envoi" value="Modifier le classement"></td></tr>
  3. </table>
  4. <table border=1 bgcolor='9BA9E2' cellpadding='3' cellspacing='0'  width='85%' bordercolor='1E3B82'>
  5. <tr>
  6.  <td align=center width=10% bordercolor='FFFFFF'><font size=2 face='Verdana' color='000000'><B>Modifier</B></font></td>
  7.  <td align=center width=15% bordercolor='FFFFFF'><font size=2 face='Verdana' color='000000'><B>Nom</B></font></td>
  8.  <td align=center width=30% bordercolor='FFFFFF'><font size=2 face='Verdana' color='000000'><B>Description</B></font></td>
  9. </tr>
  10. <?php
  11. while($row_result = mysql_fetch_assoc($result)){
  12.  $id = $row_result["id"];
  13.  $nom = $row_result["nom"];
  14.  $class = $row_result["class"];
  15.  $description = substr($row_result["description_fr"],0,60)."...";
  16. ?>
  17.  <tr>
  18.   <td align='center' bordercolor='FFFFFF'>
  19.    <input type='hidden' name="id" value="<?php echo $id; ?>">
  20.    Classement actuel : <?php echo $class ?><br>
  21.    Nouveau classement :
  22.     <select name="class">
  23.      <?php
  24.       $req = mysql_query("select class from `$tableRef`" );
  25.       while($row = mysql_fetch_array($req))
  26.       {
  27.        if ($row['class'] == $class)
  28.        {
  29.      ?>
  30.         <option value="<?php echo $row['class']; ?>" selected><?php echo $row['class']; ?></option>
  31.      <?php
  32.        }else{
  33.      ?>
  34.         <option value="<?php echo $row['class']; ?>"><?php echo $row['class']; ?></option>
  35.      <?php
  36.        }
  37.       }
  38.      ?>
  39.     </select>
  40.   </td>
  41.   <td bgcolor='FFFFFF' align='center' class='bleu8pt'><b><?php echo $nom ?></b></td>
  42.   <td bgcolor='FFFFFF' class='bleu8pt'><?php echo $description ?></td>
  43.  </tr>
  44. <?php
  45. }
  46. echo "</table></form>";


 
 

Djebel1 a écrit :

Sinon c'est super pas sécurisé comme requete, tu dois protéger les entrées utilisateurs avec mysql_real_escape_string avant de les envoyer à la base


 
Ca je verrais après, j'vais déjà essayé de faire marcher mon bordel  :lol: (mais merci du conseil)

n°1349952
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 19-04-2006 à 17:53:32  profilanswer
 

J'ai vérifié dans le code source, les valeurs dans mon select sont bien affectées, pourtant quand je rentre dans mon if j'ai demandé un echo sur $_POST['class'], ça me met 0  :??: et sur mon query ça me sort 1, c'est pas normal ça nan ?


Message édité par WhiskyWalker le 19-04-2006 à 17:54:50
n°1349985
Djebel1
Nul professionnel
Posté le 19-04-2006 à 18:37:46  profilanswer
 

euh nan spas normal :D
Que donne un echo de ta requete ? D'où sort $ID_actualite ?

n°1350228
WhiskyWalk​er
Fuck a duck and try to fly.
Posté le 20-04-2006 à 09:27:45  profilanswer
 

Ben l'écho il me donne 1 justement  :heink:  
 
et pour le $id_actualite j'me suis trompé en recopiant le code ici, c'est ça le bon :
 

Code :
  1. <?
  2. if($_POST['envoi'])
  3. {
  4. include("../connect.php" );
  5. $class = $_POST['class'];
  6. $idref = $_POST['id'];
  7. echo $class;
  8. //for($i = 1; $i <= $num ; $i++)
  9. //{
  10. $test = mysql_query("UPDATE `$tableRef` SET class='$class' WHERE id='$idref'" );
  11. //}
  12. echo $test;
  13. echo "<center><table border=0 cellpadding=5 cellspacing=0  width=300><tr><td align=center><div class=ok>Modification effectuée</div></td></tr><tr></table></center>";
  14. mysql_close($db);
  15. }
  16. if(!$_POST['envoi'])

n°1350635
Djebel1
Nul professionnel
Posté le 20-04-2006 à 16:57:07  profilanswer
 

Et $tableRef est défini où ?
 
un echo de ta requete donne juste 1 ?? rien d'autre ?? tu te fous de ma gueule ? ;)
Au minimum, si ta requete est complètement ratée, elle affichera  
update set class='' where id=''
 
Alors BORDEL, si tu nous disait ce qu'affiche ta requete ?? :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Update multiple

 

Sujets relatifs
Upload multiple[C#] DataAdapter.Update() marche pô
Faire un choix multiple avec une bddINSERT INTO ou UPDATE en sql?
checkbox(choix multiple)pb avec jdbc et update d'un bdd
Update et ?Probleme de séléction multiple
UPDATE multiple[MYSQL] UPDATE multiple sur une table [Résolu]
Plus de sujets relatifs à : Update multiple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR