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

Résolu
tonguim -  
 tonguim -
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. tonguim Messages postés 50 Statut Membre 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.
    0
  2. tonguim Messages postés 50 Statut Membre 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.
    0
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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...
    0
  4. tonguim Messages postés 50 Statut Membre 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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ricric Messages postés 34 Statut Membre 7
     
    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.
    0
  7. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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.
    0
  8. tonguim
     
    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.
    0