[PHP] Urgent code pour le BAC

bonjour, je suis éléve en terminale STG option GSI et là je séche!
j'ai un projet à réalisé pour le BAC:

contexte:
Je créer une page php pour une agence de voyage qui permet de reservé en ligne, je n'arrive pas a afficher le resultat d'une requete dans un champs de formulaire, voici le code:

$req="select codeclient from client where nomclient=\"$_POST[nomcli]\" ";
$res=mysql_query($req) or die ("impossible");

while ($donnees=mysql_fetch_array($res))
{echo $donnees['codeclient'];};

echo"<td><input type='text' name='nomcli2' value=$donnees></td>";
(je n'est pas mis le code de tout le tableau car le reste marche

je voudrais afficher donc le résultat dans ce champs (nommé nomcli2)

merci d'avance

cela fait 4 heures que nous sommes dessus avec la prof!

Rambaldi_47
Configuration: Windows XP
Internet Explorer 6.0

14 réponses

  1. Contributeur
    t'es sur de ta ligne :
    $req="select codeclient from client where nomclient=\"$_POST[nomcli]\" ";

    moi je verrais plustot :

    $req="select codeclient from client where nomclient=$_POST[nomcli]";

    ou

    $req="select codeclient from client where nomclient=\".$_POST[nomcli]."\";

    enfin, une chose est sur, c'est linplantation de $_POST[nomcli] qui te fait merdouiller ton code..

    Pourquoi les 2 "\" ?? et regarde bien le nb de " .. ca doit toujours etre un nombre pair.
    Pour moins d'erreurs, je te conseil d'utilisé un éditeur de code type UltraEdit qui te met un code couleur spécial pour chaque type de donné (text, fontion, commentaire, ect).
    1. Merci de m'aider jjsteing
      mais les deux requêtes
      proposer ne marchent pas...surtout que mon problème c'est que la requete marche, mais c'est l'affichage dans le champs <input....> qui ne marche pas

      merci de me dire qi tu as une autre solution
      c'est vraiment sympas!
      rambaldi_47
      1. Contributeur
        essaaye :

        <input type='text' name='nomcli2' value=".$donnees.">

        sinon, j'ai un ptit code de degub qui peut etre util rajoute cette function dans ton code php :

        function MsgBox($Message){
        echo "<script language='javascript'>alert(\"".$Message."\");</script>";
        }

        et avant ta ligne input met:

        Msgbox ($donnees);

        pour voir deja si il te remonte bien l'info que tu veux...
      2. Contributeur
        oups...

        function MsgBox($Message){
        echo "<script language='javascript'>alert("\".$Message."\");</script>";
        }
      3. j'ai bien essayé ton code, mais il ne veut toujours pas m'afficher dans le <input...> le résultat, l'info remonte bien, la requete est OK c'est juste que je ne sais pas comment lui dire de l'afficher dans le champs de formulaire

        mais merci beaucoup, beaucoup j'atend ta reponse avec impatience!

        rambaldi_47
    2. Contributeur
      trouvé !!! (enfin, je crois, g + ou- le meme code sur mon site, mais avec une checkbox ;) )

      value='$donnees'
      1. j'ai encore essayé mais sans succées encore une fois, quand je te dit qu'on séche!!
        peut être peux tu me donner l'adresse de ton site ou alors veut tu mon code complet (même si cela ne change pas grand chose!)

        merci de t'acrocher je comprendrais que tu perde espoir!!!

        merci encore

        Rambaldi_47
        1. Contributeur
          T inquiet, il m en faut plus pour perdre espoir ;)

          Ben je veux bien te donner l adresse de mon site, mais ca t avancera pas a grand chose, vu que tu vera que le code html...

          Mais je veux bien voir ton code, balance moi ton adresse mail en message privé (la ptite enveloppe a coté d'une de mes reponse) , et je te répondrais avec ;)
          1. merci beaucoup pour ton aide
            petite precision: le champs du formulaire

            echo"<td><input type='text' name='prix' value=$_POST[prixvoy]></td>";
            ne marche pas, mais ça je le resoudrais aprés...donc ne t'inquiete pas c'est normal si cette ligne ne marche pas!

            si tu as besoin de quoi que ce soit d'autre (même un verre d'eau!)mon adresse e-mail c'est:
            rambaldi_47@hotmail.fr

            merci encore voici le code:

            <html>
            <head>
            </head>
            <body background="fond.jpg">
            <?php
            $maconnexion=mysql_connect("localhost","root","root")
            or die("Connexion au serveur impossible");
            $db=mysql_select_db("paradise",$maconnexion)
            or die("Sélection de la base de données impossible");

            $req="select codeclient from client where nomclient=\"$_POST[nomcli]\" ";
            $res=mysql_query($req) or die ("impossible");

            while ($donnees=mysql_fetch_array($res))
            {echo $donnees['codeclient'];};

            echo"<form action='AjouterPiece.php'method='post'>";
            echo"<h3>Etape 2 : Choisissez votre date de départ et votre date de retour</h3>";
            echo"<b>Informations sur le voyage</b><br>";
            echo"<p><table>";
            echo"<tr><td align='right'>Code du voyage:</td>";
            echo"<td><input type='text' name='choix' value=$_POST[Choixtype]></b></td></tr><br>";
            echo"<tr><td align='right'>Votre code Client:</td>";
            echo"<td><input type='text' name='nomcli2' value='$donnees'></td>";
            echo"<tr><td align='right'>Prix du Voyage (/personne)<br>-50% Pour les moins de 12 ans</td>";
            echo"<td><input type='text' name='prix' value=$_POST[prixvoy]></td>";

            ?>
            <tr>
            <td align="right">Date de départ </td>
            <td><input type="text" name="datedep" size="20" maxlength="255"></td></tr>
            <tr>
            <td align="right">Date de retour </td>
            <td><input type="text" name="dateret" size="20" maxlength="255"></td></tr>
            <tr>

            </table>
            <input type="submit" value="Résérvez!">
            </form>
            </body>
            </html>

            merci infiniment, je continu moi aussi à chercher de mon coté
            merci

            rambaldi_47
        2. Contributeur
          j'espere que tu adore les spam, car donner son adresse en clair comme ca... c risqué.. modifi ton message...

          t membre de commentcamarche???

          Alors, déjà, ta ligne qui marche pas, change la en :

          echo"<td><input type='text' name='prix' value='$_POST[prixvoy]'></td>";

          pareil pour :

          echo"<td><input type='text' name='prix' value='$_POST[prixvoy]'></td>";

          ptetre que ca ira mieux ;)

          manque un espace entre 'AjouterPiece.php' et method :
          echo "<form action='AjouterPiece.php' method='post'>";

          Prix du Voyage (/personne) : Aie aie aie.. ca aime pas trop les /, remplace plutot par un %2f...
          mais des fois, ca passe, alors, concentrons nous sur le plus fatidique :

          fait un echo pour vérifier $donnees

          echo"<tr><td align='right'>Votre code Client:</td>";
          echo"<td>$donnees</td>";

          et dis moi si il t affiche bien la valeur de $donnee...

          de plus, enfin, ca c un avis personnel, mais la syntax est tres importante. moi je met un espace entre le echo et "

          et vérifie bien les ' ' apres value=, ca peut tout changer !!
          1. Contributeur
            euh, apres une ptite relecture, mon 1er post est faux :

            $req="select codeclient from client where nomclient=\"$_POST[nomcli]\" "; // ca c bon, normal qu il y est 3 "

            mais pour estre + clair change par :

            $req="select codeclient from client where nomclient='$_POST[nomcli]' ";
            1. Contributeur
              de plus, en regardant uin peut mon code perso j'ai trouver une légère différence au niveau des guillemets ( ` et pas '):

              mon code :
              $selection=SQL("SELECT * FROM `panier` WHERE `NomConnection` = '".$_SERVER['REMOTE_ADDR']."'");

              fait gaffe, y a des " collés a des ' sans espaces, sinon, erreurs...

              mais bon, ton $donnees te remonte t il bien l info que tu veux (sans ces changements) ???

              ps, je t ajouter a ma liste de contact msn ;)
              1. Bonjour,
                Je mettrai plutôt:
                $req="select codeclient from client where nomclient='$_POST["nomcli"]' ";

                et non pas :
                $req="select codeclient from client where nomclient='$_POST[nomcli]' ";
                nomcli est une variable récupérée à partir d'un formulaire par la methode post et doit être entre guillemets dans les crochets du $_POST.
                A essayer...
                1. Contributeur
                  Tout a fait d accoird...

                  A.. ces pt1 de " ' " a la con, c crée toujours des sushis ;)
              2. merci je vais tester tout ça quand je pourrais et je vous tiens au courant merci encore
                j'ai hâte de voir si cela marche

                rambaldi_47
                1. merci les gars, ma requête marche impec; mais y'a un soucis qui persoste c'est l'affichage du resultat dans le champs:

                  <input type='text' value='...là je met quoi???...'>

                  merci encore

                  ps: je me connecte rarement à MSN
                  1. Contributeur
                    pourquoi, ca marche pas avec :

                    echo"<td><input type='text' name='prix' value='$_POST[prixvoy]'></td>";

                    sinon, essaye :

                    echo"<td><input type='text' name='prix' value='".$_POST[prixvoy]."'></td>";

                    gaffe aux guillemet : "blabla value = ' " . $variable ou code php . " ' blabla";
                    1. Bonjour,

                      réponse à la question initiale : sauf erreur de ma part, mysql_fetch_array renvoie un tableau, donc ton code devrait au minimum être :
                      echo"<td><input type='text' name='nomcli2' value='$donnees[0]'></td>";

                      De plus, si tu as plusieurs valeurs, il faut mettre chaque ligne de la table dans ta boucle.

                      Cordialement.