IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une même variable donne des résultats différents


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 71
    Points : 58
    Points
    58
    Par défaut Une même variable donne des résultats différents
    Bonjour,
    je tourne mon problème dans tous les sens, je commence à croire à de la magie noire...
    J'ai une page où je récupère les données d'une table mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <form name="film" method="POST" action="ecrire.php">
    Titre du film:<input type="text" name="film" id="film" size="64">
    <input type="submit" name="chercher" value="chercher"></form>
    <?php	
    if (isset ($_POST['chercher']))
    {
    $filmresult=$_POST['film'];
    $requete='SELECT identifiant, titre_film, annee_film, affiche FROM films WHERE titre_film like"%'.$filmresult.'%"';
    $result=mysql_query ($requete) or die ('Erreur SQL !'.$requete.'<br />'.mysql_error());
    echo '<ul>';
    while ($data3 = mysql_fetch_array($result))
    {
    echo'<li><form name="film" method="POST" action="ecrire.php">'.$data3['identifiant'].': '.$data3['titre_film'].', nom de l\'image : '.$data3['affiche'].' <input name="affiche" id="affiche" type="radio"  VALUE="'.$data3['affiche'].'"><input type="hidden" name="identifiant" VALUE="'.$data3['identifiant'].'"></li>';
    }
    echo '</ul><p>Si le film est répertorié et que le nom de l\'image est inscrit dans la liste ci-dessus, sélectionnez-le puiss cliquez sur "bon"';
    }	
    ?>
    <input type="submit" name="bon" value="bon"></form>
    Je veux ensuite insérer les données récupérées dans une autre table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    //insérer l'affiche dans web_articles				
    if (isset ($_POST['bon']))
    {	
    $affiche=$_POST['affiche'];
    $id=$_POST['identifiant'];
    $reqn ='INSERT INTO cit_films VALUES("","","'.$id.'","a")';
    mysql_query ($reqn) or die ('Erreur SQL !'.$reqn.'<br />'.mysql_error());
    Mais entre la première et la deuxième occurrence de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '.$data3['identifiant'].'
    la variable change de valeur.
    Mon tableau de résultat s'affiche avec la bonne valeur correspondant à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '.$data3['identifiant'].'
    Par contre, si j'affiche via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['identifiant'];
    placé après le formulaire, elle me donne une autre valeur dont je ne sais absolument pas à quoi elle peut bien correspondre.
    Est-ce que quelqu'un aurait la gentillesse de me désenvouter ?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    J'ai pas tout compris, mais dans ta boucle/<li> il y a un <form> ouvert et non fermé.

    Présente ton script correctement, tu trouveras peut-être d'autres erreurs.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Et en fait pour l'instant tu ferme cette balise form en dehors de la boucle et comme tu ouvre le formulaire à l'intérieur de la boucle, c'est totalement déséquilibré.

    Il faudra choisir entre ouvrir et fermer des formulaires à l'intérieur de ta boucle ou ne faire qu'un formulaire qui inclus toute ta boucle.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 71
    Points : 58
    Points
    58
    Par défaut
    Merci pour vos réponses. Si je n'ai pas mis tout le code, c'était pour ne pas fatiguer le lecteur, donc cette fois je mets l'ensemble de la partie qui pose problème. J'ai cette fois sorti le début du formulaire de la boucle, mais le problème reste le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <h3>Pour ajouter l'affiche du film, indiquez un mot du titre dans le fomulaire suivant:</h3>
    <form name="film" method="POST" action="ecrire.php">
    Titre du film:<input type="text" name="film" id="film" size="64">
    <input type="submit" name="chercher" value="chercher"></form>
    <?php	
    if (isset ($_POST['chercher']))
    {
    $filmresult=$_POST['film'];
    $requete='SELECT identifiant, titre_film, annee_film, affiche FROM films WHERE titre_film like"%'.$filmresult.'%"';
    $result=mysql_query ($requete) or die ('Erreur SQL !'.$requete.'<br />'.mysql_error());
    ?><form name="film" method="POST" action="ecrire.php"><ul>
    <?php
    while ($data3 = mysql_fetch_array($result))
    {
    echo'<li>'.$data3['identifiant'].': '.$data3['titre_film'].', nom de l\'image : '.$data3['affiche'].' <input name="affiche" id="affiche" type="radio"  VALUE="'.$data3['affiche'].'"><input type="hidden" name="identifiant" VALUE="'.$data3['identifiant'].'"></li>';
    }
    echo '</ul><p>Si le film est répertorié et que le nom de l\'image est inscrit dans la liste ci-dessus, sélectionnez-le puiss cliquez sur "bon"';
    }	
    ?>
    <input type="submit" name="bon" value="bon"></form>
    <?php
    //insérer l'affiche dans web_articles				
    if (isset ($_POST['bon']))
    {	
    $affiche=$_POST['affiche'];
    $id=$_POST['identifiant'];
    echo $id.;
    Donc un premier formulaire demande un nom du titre du film
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filmresult=$_POST['film']
    Ensuite s'affiche la liste des films contenant ce mot grâce à ma boucle qui me donne l'identifiant du film, son titre et le nom de son affiche.
    Un deuxième formulaire demande à l'utilisateur de choisir parmi ces films. Je veux ensuite récupérer l'identifiant du film qui correspond à la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '.$data3['identifiant'].'
    Cette variable s'inscrit deux fois dans la boucle: une fois elle s'affiche, une fois elle s'insère dans un champ caché.
    Quand je récupère le résultat du champ caché de mon deuxième formulaire, la variable me donne un résultat différent de ce qu'elle affiche dans la boucle.
    J'espère avoir été claire ?
    Merci d'avance.

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 091
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 091
    Points : 8 194
    Points
    8 194
    Billets dans le blog
    17
    Par défaut
    Ta boucle génère des champs ayant tous le même nom.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 71
    Points : 58
    Points
    58
    Par défaut
    En vous détaillant le problème j'ai trouvé. En fait, il m'affiche dans la boucle le premier résultat de la boucle et dans le champ caché le dernier résultat de la boucle. Il fallait que je fasse un formulaire entier pour chacun des résultat de la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="film" method="POST" action="ecrire.php"><ul><li>'.$data3['identifiant'].': '.$data3['titre_film'].', nom de l\'image : '.$data3['affiche'].' <input name="affiche" id="affiche" type="radio"  VALUE="'.$data3['affiche'].'"><input type="hidden" name="identifiant" VALUE="'.$data3['identifiant'].'"></li><input type="submit" name="bon" value="bon"></ul></form>
    et ça marche.
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/04/2015, 10h41
  2. La même formule donne des résultats différents
    Par shadelv dans le forum Excel
    Réponses: 3
    Dernier message: 01/10/2012, 11h18
  3. Réponses: 1
    Dernier message: 15/09/2010, 21h00
  4. Réponses: 5
    Dernier message: 06/03/2010, 14h47
  5. 2 executions d'un programe C graphique avec SDL me donne des résultats différents
    Par Brin d'if dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/12/2007, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo