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 :

Tests if{} elseif{} ne fonctionnent pas !!!


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut Tests if{} elseif{} ne fonctionnent pas !!!
    Bonjour,

    dans le code suivant, j'effectue des tests sur 3 variables que je remplis dans un formulaire. Mes tests ne marchent pas et je n'ai aucune erreur php non plus. Peut etre que mes tests sont mal formulés?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
     <html> 
        <head> 
            <title></title> 
        </head> 
        <body> 
            <?php 
                include("exercice2_connexion.php"); 
     
                    $type=$_POST['zoneType']; 
                    $titre=$_POST['zoneTitre']; 
                    $auteur=$_POST['zoneInterprete']; 
     
                    if ($type == "" && $titre == "" && $auteur != "") 
                    { 
                        $requete="select titreAlbum, typeMusique from musique where titreAlbum='$titre' and typeMusique='$type' group by typeMusique"; 
                    } 
     
                    elseif ($type == "" && $titre != "" && $auteur == "") 
                    { 
                        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
                    } 
     
                    elseif ($type == "" && $titre != "" && $auteur != "") 
                    { 
                        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
                    } 
     
                    elseif ($type != "" && $titre == "" && $auteur == "") 
                    { 
                        $requete="select titreAlbum, typeMusique, interprete from musique where interprete='$auteur' order by interprete asc"; 
                    } 
     
                    elseif ($type != "" && $titre != "" && $auteur == "") 
                    { 
                        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
                    } 
     
                    elseif ($type != "" && $titre == "" && $auteur == "") 
                    { 
                        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
                    } 
                    else 
                    { 
                        echo("spécifiez au moins un critère pour la recherche");                 
                    } 
     
     
                    $resultat=mysql_query($requete); 
     
                    if(mysql_num_rows($resultat)) 
                    { 
     
                        echo ("Bienvenue. Connexion réussie ! $requete"); 
                    } 
                    else 
                        echo ("<b>Echec de la connexion</b>. <a href=\"exercice2_formulaire.php\">Cliquez ici pour revenir au formulaire</a>"); 
    ?> 
        </body> 
    </html>

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    il marche pas ?
    il court ?

  3. #3
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    C'est qu'il à du tomber, sinon il marcherait :o

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Citation Envoyé par tonguim
    Peut etre que mes tests sont mal formulés?
    Peut-être. Ou pas.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    mon programme ne marche pas.

    Quelque soit le test que j'effectue (sauf pour celui la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    elseif ($type != "" && $titre == "" && $auteur == "")
    le programme m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Echec de la connexion</b>. Cliquez ici pour revenir au formulaire
    ce qui me fait dire que mes tests ne marche pas.

    Quelqu'un peut il m'aider à résoudre le problème? Merci.

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    perso ça me ferait plutôt dire que tes trois variables sont vides...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Swoög
    perso ça me ferait plutôt dire que tes trois variables sont vides...
    Les 3 variables contiennent bien des valeurs.

  8. #8
    Membre actif Avatar de renaudjuif
    Inscrit en
    Avril 2006
    Messages
    325
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 325
    Points : 258
    Points
    258
    Par défaut
    et si la requête marche bien mais qu'elle ne ramène pas de résultats,
    mysql_num_rows($resultat)=0;
    donc !mysql_num_rows($resultat)
    ca doit te rediriger vers "Echec de la connexion", non ?

  9. #9
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    if(mysql_num_rows($resultat)) 
                    { 
     
                        echo ("Bienvenue. Connexion réussie ! $requete"); 
                    }
    Sa c'est du test qui respire la logique. Pour rappel, mysql_num_rows renvoie un entier, if(!quelquechose) teste des booleens.

    Sinon en gras tout ce qui me paraissait etrange et que j'ai modifié :
    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
    29
                    
    if ($type != "" && $titre != "" && $auteur != "") 
    { 
        $requete="select titreAlbum, typeMusique from musique where titreAlbum='$titre' and typeMusique='$type' group by typeMusique"; 
    } 
    elseif ($type != "" && $titre == "" && $auteur == "") 
    { 
        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by typeMusique asc"; 
    } 
    elseif ($type != "" && $titre == "" && $auteur == "") 
    { 
        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by typeMusique asc"; 
    } 
    elseif ($type == "" && $titre == "" && $auteur != "") 
    { 
        $requete="select titreAlbum, typeMusique, interprete from musique where interprete='$auteur' order by interprete asc"; 
    } 
    elseif ($type != "" && $titre == "" && $auteur == "") 
    { 
        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
    } 
        elseif ($type != "" && $titre == "" && $auteur == "") 
    { 
        $requete="select titreAlbum, typeMusique from musique where typeMusique='$type' order by titreAlbum asc"; 
    } 
    else 
    { 
        echo("spécifiez au moins un critère pour la recherche");                 
    }
    Il y'à vraiment un truc pas clair. Je me retrouve avec trois fois la même actions...

    Et puis quelquechose me fait dire que ton shchéma n'est pas super correct. Mais c'est un autre histoire.


    bbye

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 151
    Points
    151
    Par défaut
    Attend je te montre le truc pas clair

    En fait j'pense que dans tous tes tests tu remplace "&&" par "||" et ca devrait aller beaucoup mieux


  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 151
    Points
    151
    Par défaut
    Non en fait je raconte des conneries ....

    Reveille toiiiiii highman

    bonne journée

  12. #12
    Invité
    Invité(e)
    Par défaut
    déja si j'étais toi je commencerais par le commencement , cad verifier que les variables post existe avec des isset.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Merci à tous pour votre aide. J'avais copié et collé les mêmes requêtes dans toutes les strucures elseif, si bien que la plupart des requêtes ne retournaient rien comme résultat à cause des critères de recherche (qui doivent correspondre aux 3 variables).
    Le programme marche très bien maintenant.

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

Discussions similaires

  1. test.exe qui ne fonctionnent pas sur les autres machines
    Par sboumediene dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/06/2011, 08h06
  2. un test if qui ne fonctionne pas
    Par tortue_22 dans le forum Langage
    Réponses: 11
    Dernier message: 12/05/2010, 11h45
  3. Un test if qui ne fonctionne pas correctement
    Par Shinjuku dans le forum Langage
    Réponses: 6
    Dernier message: 26/02/2008, 10h52
  4. [RegEx] Test d'un format spécifique qui ne fonctionne pas
    Par Alvaten dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2008, 08h25
  5. TRIGGER (test avant ajout) ne fonctionne pas correctement
    Par marcusien dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2007, 18h02

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