Problème de requete sql avec php

Bonsoir tout le monde,

Voici ma requête sql, qui ne marche pas:

$reqUpdateProduit=mysql_query("UPDATE produit SET nomBijoux='.$nomBijoux.',longueur ='.$longueur.',poids='.$poids.',saison='.$saison.',annee1='.$annee1.',annee2='.$annee2.',prixHT='.$prixHT.',descriptionBijoux='.$descriptionBijoux.',
enLigne='.$enLigne.',numType='.$numeroType[0].' WHERE numBijoux='.$numBijoux.'");

Merci pour votre aide.
Configuration: Windows XP
Firefox 3.0.7

16 réponses

  1. Contributeur
    salut!
    essai ceci:
    $reqUpdateProduit=mysql_query("UPDATE produit SET nomBijoux='$nomBijoux',longueur ='$longueur',poids='$poids',saison='$saison',annee1='$annee1',annee2='$annee2',prixHT='$prixHT',descriptionBijoux='.$descriptionBijoux.',
    enLigne='$enLigne',numType='$numeroType[0]' WHERE numBijoux='$numBijoux'");
    
    
    1. ça ne change rien. J'ai même une phrase en plus qui me dit:

      Duplicata du champ '2-11' pour la clef 'PRIMARY'

      Qu'est ce que cela veut dire?

      Merci
      1. Contributeur
        c'est quelle erreur ça te renvoie?Pour l'autre message,ça veut dire que tu veux modifier la valeur de la clé,or c'est impossible!
        1. attend j'ai un autre soucis, j'ai une variable de ma requête qui ne possède pas de valeur.

          Voici mes bouts de code:
          <TD><font color="white"><B>Type de bijou*</B></font></TD>

          <?php
          require("fonction.php");
          Connect();

          $sql = mysql_query("SELECT numType, libType FROM type ORDER BY 2");
          echo"<TD align = center>";
          echo"<fieldset STYLE='height:125' width='75'><br/>";

          // création de la légende
          echo "<LEGEND><i><font color=\"#15616E\">Sélectionnez le type du bijou</font></i></LEGEND>";

          // création de la liste déroulante, ne pas oublier le name
          echo "<select name='type[]' STYLE='width:150' size='4'>";

          // Parcourir la requête
          while ($type = mysql_fetch_assoc($sql))
          {
          $leType = $type['libType'];
          echo "<option value ='".$type['numType']."' > " .$leType. " </option>";
          };
          echo "</select>";
          echo "</fiedset>";
          echo"</TD>";
          ?>

          $numBijoux=$_SESSION["leNumBijoux"];
          $nomBijoux=$_POST["nomBijoux"];
          $numeroType=$_POST["type"];

          echo '<p>Récapitulatif des données saisies</p>';
          echo '<ul>';
          echo '<li>numBijoux:'.$numBijoux.'</li>';
          echo '<li>nomBijoux:'.$nomBijoux.'</li>';
          echo '<li>Numero type:'.$numeroType[0].'</li>';

          Le numeroType[0] ne possède pas de valeur, surement que le problème vient de la parce que j'ai un message qui me dit:

          Incorrect integer value: '' for column 'numType' at row 1

          Mais je ne vois pas d'ou cela peut venir???
          1. Contributeur
            normalement oui,pourquoi il n'y a pas de valeur à cette variable?
            1. justement je ne comprend pas, problème dans la liste déroulante. Dans un premier temps, j'affiche le type du bijou qui correspond au numero du bijou choisi et ensuite dans cette même liste déroulante je veux faire apparaitre toutes les autres types afin que l'utilisateur puisse modifier le type, s'il s'est trompé.
              1. Contributeur
                as tu renseigner le "value" dans la liste déroulante?fais moi voir le code de la liste déroulante!
                1. <?php
                  require("fonction.php");
                  Connect();

                  $sql = mysql_query("SELECT numType, libType FROM type ORDER BY 2");
                  echo"<TD align = center>";
                  echo"<fieldset STYLE='height:125' width='75'><br/>";

                  // création de la légende
                  echo "<LEGEND><i><font color=\"#15616E\">Sélectionnez le type du bijou</font></i></LEGEND>";

                  // création de la liste déroulante, ne pas oublier le name
                  echo "<select name='type[]' STYLE='width:150' size='4'>";

                  // Parcourir la requête
                  while ($type = mysql_fetch_assoc($sql))
                  {
                  $leType = $type['libType'];
                  echo "<option value ='".$type['numType']."' > " .$leType. " </option>";
                  };
                  echo "</select>";
                  echo "</fiedset>";
                  echo"</TD>";
                  ?>
                  1. attend!!!!!!!!!!!!!!!!!je crois que je me suis trompé dans le code que je t'ai envoyé, regarde celui là:

                    <?php
                    Connect();
                    // On exécute la requête qui permet d'afficher le type du bijou grâce au numéro du bijou
                    //$reqRecupLibType=mysql_query("SELECT libType FROM type WHERE numType='$leNumType'");

                    echo "<td>

                    <fieldset width='75'>
                    <legend align=top><i>Selectionné le type</i></legend>";
                    echo "<select name='type[]' STYLE='width:150' size='5'>";

                    // Tant que la ligne est pleine on met la valeur dan $type
                    while ($type=mysql_fetch_assoc($reqRecupLibType))
                    {
                    // On met dans la variable "$leLibType" le libelle du bijou
                    $leLibType=$type['libType'];
                    // On met dans la variable "$leNumType" le numéro du bijou
                    $leNumType=$type['numType'];

                    echo "<div class='blocCouleur'><div class='colonne'>";

                    // On affiche dans une liste déroulante
                    echo "<option value ='".$leNumType."' selected>".$leLibType."</option>";
                    }

                    Connect();

                    //On affiche tous les types
                    while ($type = mysql_fetch_assoc($reqType))
                    {
                    $leType = $type['libType'];
                    echo "<option value ='".$type['numType']."'> ".$leType." </option>";
                    };
                    echo "</select>";
                    echo "</fieldset>";
                    echo "</td>";

                    ?>
                    1. Contributeur
                      dis moi,pourquoi tu met un . avant et après chaque variable??
                      1. Contributeur
                        bon tu poste tes variables??cad tu les envoi via un formulaire?si c'est le cas,met print_r($_POST) en début de script pour voir ce qui est envoyé!
                        1. Contributeur
                          il t'affiche la valeur de ce qui est posté dans type??
                          il doit en principe afficher array($_POST['type']=>valeur postée) bref,pour toutes les variables postées c'est qu'il doit faire.
                          1. moi il m'affiche que array??? Je ne comprend pas pourquoi il ne prend pas la valeur lorsque je fais "numeroType[0]".

                            Je vais me reposer, j'en ai besoin, après avoir passé 10 heures au taf sur du pl/sql et quelques heures ce soir du php. J'ai besoin de repos.

                            bonne soirée, je recommencerai ce soir
                            1. Contributeur
                              ok,s'il t'affiche que array tout simple,ça veut dire que ton formulaire n'envoie rien!