PHP: tests if{} elseif{} ne marchent pas !!!

Résolu
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><!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></CODE>

7 réponses

  1. mon programme ne marche pas.

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

    elseif ($type != "" && $titre == "" && $auteur == "")


    le programme m'affiche

    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.
    1. mon programme ne marche pas.

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

      elseif ($type != "" && $titre == "" && $auteur == "")


      le programme m'affiche

      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.
      1. Modérateur
        Fait un echo sur ta requête et tu sauras s'il ya un problème dans la syntaxe, ou si la requête ne donne pas ce que tu attend etc...
        1. Les requêtes fonctionnent parfaitement; je les ai testées dans phpMyAdmin avec succès. Les 3 variables aussi contiennent bien les données qu'il faut. Je me demande si le problème ne se trouve pas au niveau des tests.
          1. Bonjour
            Comment les as-tu testées dans phpmyadmin ?

            Pour tester les requêtes dans phpmyadmin, je fais un echo de la requête avant mysql_query()
            et je la colle dans phpmyadmin.

            Ainsi je teste bien la requête générée par le script.
            1. Modérateur
              Oui je ne crois pas que le problème vienne des tests mais plutôt de la requête qui ne retourne pas de résultat, ou de la connexion à la base de données qui ne se fait pas.
              1. 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 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.