Debutante : modification des données d'une bdd sous php

Debutante : modification des données d'une bdd sous php - PHP - Programmation

Marsh Posté le 21-04-2009 à 08:45:11    

Bonjour,
 
Je débute en php et je rencontre des problèmes lors de la création d'une bdd en php. C'est une bdd pour la gestion de stock. IL faut donc pouvoir modifier les références en fonction des fournisseurs qui changent. Et là est mon problème, les références à changer ne sont pas prise en compte dans le formulaire de modification et lorsque l'on valide cela nous cré un autre champ au lieu de modifier celui qui est existant. Je n'arrive pas à savoir d'où vient l'erreur.
 
Je vous met le code de la page de modification
 

Code :
  1. <?php
  2. if (isset($_SESSION['droit']) && ($_SESSION['droit'] == 'admin' || substr($_SESSION['droit'],43,1) > 1)) {
  3. $sql="SELECT * FROM $table_gref WHERE id='".$_GET['id']."' LIMIT 1";
  4. $requete=mysql_query($sql);
  5. $row=mysql_fetch_array($requete);
  6. require("xajax_common.php" );
  7. $xajax->printJavascript('xajax/');
  8. ?>
  9. <form name="ref" action="index.php?nompage=gest_refvalid" method="post">
  10. <input type="hidden" name="id" value="<?=$row['id']?>" />
  11. <table border="1" cellpadding="4" cellspacing="1" align="center" width="80%" bordercolor="#D6D352">
  12. <thead><tr>
  13.  <th colspan="2">"Modification d'une référence"</th>
  14. </tr></thead>
  15. <tbody><tr>
  16.  <td>Référence</td>
  17.  <td><input type="text" name="reference" size="20" value="<?=$row['reference']?>" /></td>
  18. </tr>
  19. <tr>
  20.  <td>Nom</td>
  21.  <td><input type="text" name="nom" size="40" maxlength="50" value="<?=$row['nom']?>" /></td>
  22. </tr>
  23. <tr>
  24.  <td>Fournisseur</td>
  25.  <td><select name="fournisseur" onchange="xajax_frnsel(this.options[this.selectedIndex].value, <?=$row['categorie']?>, false, true);">
  26.   <!-- <option value="0">Sélectionnez un fournisseur</option> -->
  27.   <?php
  28.   $sql_frn="SELECT * FROM $table_gfrn ORDER BY nom ASC";
  29.   $requete_frn=mysql_query($sql_frn);
  30.   while($row_frn=mysql_fetch_array($requete_frn)) {
  31.    echo "<option value=\"".$row_frn['id']."\"".(($row['fournisseur'] == $row_frn['id'])?" selected":"" )." title=\"".$row_frn["adresse"]."\n".$row_frn["cp"]." - ".$row_frn["ville"]."\">".$row_frn['nom']."</option>\n";
  32.   }
  33.   ?>
  34.  </select></td>
  35. </tr>
  36. <tr>
  37.  <td>Catégorie</td>
  38.  <td id="listcat"><input type="hidden" name="categorie" value="<?=$row['categorie']?>" />&nbsp;</td>
  39. </tr>
  40. <tr>
  41.  <td>Quantité(s)</td>
  42.  <td><input type="text" name="qte" size="6" value="<?=$row['qte']?>" /></td>
  43. </tr>
  44. <tr>
  45.  <td>Quantité mini</td>
  46.  <td><input type="text" name="qte_mini" size="6" value="<?=$row['qte_mini']?>" /></td>
  47. </tr>
  48. <tr>
  49.  <td>Prix</td>
  50.  <td><input type="text" name="prix" size="10" value="<?=$row['prix']?>" />€TTC - ex: 15<span style="font-weight: bold; color: #FF0000;">.</span>90</td>
  51. </tr>
  52. </tbody>
  53. <tfoot><tr><td colspan="2" align="center"><input id="valid" type="submit" value="Modifier" /> <a href="javascript:;" onclick="document.getElementById('valid').disabled=true; window.location.href='index.php?nompage=gest_ref';">Retour</a></td></tr></tfoot>
  54. </table>
  55. </form>
  56. <script language="javascript">
  57. xajax_frnsel(<?=$row['fournisseur']?>, <?=$row['categorie']?>, false, true);
  58. </script>
  59. <?php
  60. }
  61. else {
  62. echo "Vous n'avez pas les droits pour accéder à cette page !!!";
  63. echo "<script>window.setTimeout('parent.location=\'index.php?nompage=gest_ref\'',1500);</script>";
  64. }
  65. ?>


 
Je vous remercie par avance pour votre aide :jap:

Reply

Marsh Posté le 21-04-2009 à 08:45:11   

Reply

Marsh Posté le 21-04-2009 à 10:15:17    

ta fonction xajax_frnsel elle est censé faire quoi?
quand tu change le fournisseur il doit faire quoi normalement?
 
je suis un peu perdu dans ton code

Reply

Marsh Posté le 21-04-2009 à 10:22:33    

En faite je reprends le code d'une bdd déjà faite et je le modifie un peu pour créerune nouvelle bdd.
Donc je ne comprends pas tout non plus vu que je ne connaissais pas ce langage au début de la conception de cette bdd.
 
Pour la fonction je t'ais trouver le code de correspondance:

Code :
  1. function refsel($cat, $frn) {
  2. global $table_gref;
  3. $objResponse = new xajaxResponse();
  4. $sqlref="SELECT id, reference, nom FROM $table_gref WHERE categorie='$cat'".(($frn > 0)?" AND fournisseur='$frn'":"" )." ORDER BY nom ASC";
  5. $reqref=mysql_query($sqlref);
  6. if ($cat != 0 && mysql_num_rows($reqref) > 0) {
  7.  $text="<select name=\"reference\" id=\"reference\">";
  8.  while($rowref=mysql_fetch_array($reqref)) {
  9.   $text .= "<option value=\"".$rowref['id']."\" title=\"R&eacute;f.: ".$rowref['reference']."\">".$rowref['nom']."</option>\n";
  10.  }
  11.  $text .= "</select>&nbsp;<a href=\"javascript:;\" onclick=\"document.getElementById('fournisseur').disabled=true; var reference = document.getElementById('reference'); xajax_refadd(reference.options[reference.selectedIndex].value);\">Ajouter</a>";
  12. }
  13. else {
  14.  $text="<input type=\"hidden\" name=\"reference\" id=\"reference\" value=\"0\" />&nbsp;";
  15. }
  16. $objResponse->addAssign("listref", "innerHTML", utf8_encode($text));
  17. return $objResponse;
  18. }


 
J'espère que ça pourra t'aider à m'aider :p

Reply

Marsh Posté le 21-04-2009 à 10:59:32    

dsl mais je comprends rien au fonctionnement de ton code,  
je voit pas l'enchainement de tes fonctions.
 
tu utilise de l'ajax ou c'est juste que ca a rien a voir le nom de tes fonctions?

Reply

Marsh Posté le 21-04-2009 à 11:02:51    

il y a de l'ajax dedans!!

Reply

Marsh Posté le 21-04-2009 à 15:11:59    

je vois pas l'enchainement te ton code,  
j'arrive pas a comprendre.

Reply

Marsh Posté le 21-04-2009 à 15:17:37    

+1, c'est malheureusement un tel bordel qui mélange tout qu'il est difficile de s'y retrouver [:sadnoir] Y'a tout qui est mixé : requêtes SQL, HTML, Javascript, etc.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed