Probleme dans la requete

Bonjour,
je ne comprends pas pourquoi mais aparament ma requete ne marche pas .voici mon code :

<?php

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp

$sql ="SELECT * FROM base_physique WHERE ";

if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .=" auteur LIKE '%".$_POST["auteur"]."%'";
$reponse = mysql_query($sql);

while ($donnees = mysql_fetch_array($reponse))
{

?>
<p>

<strong>L'auteur est</strong> : <?php echo $donnees['auteur']; ?><br />
Le titre est : <?php echo $donnees['titre']; ?> et l'année est <?php echo $donnees['année']; ?> <br />
Le journal est : <?php echo $donnees['journal']; ?> et le volume est :<?php echo $donnees['volume']; ?> <br />
La page est :<?php echo $donnees['page']; ?> <br/>
Les mots clé de la recherche sont:<?php echo $donnees['motsclé']; ?> <br/>
<a href="<?php echo $donnees['pdf']?>"> Clique ici pour voir le pdf associé </a>
</p>

<?php
}
}

je ne compreds pas pourquoi mais il ne m'affiche aucun resultat
help me please
Configuration: Windows XP
Internet Explorer 7.0

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. SELECT * FROM base_physique WHERE

    deja ta une clause "where" qui est vide.
    Met plutot: SELECT * FROM base_physique
    1. Ta base se nomme physique, pourquoi utilise tu :

      $sql ="SELECT * FROM base_physique WHERE ";


      Ne devrais tu pas utiliser :

      $sql ="SELECT * FROM physique WHERE ";
      1. nan ma base se nomme base_physique
        en fait ce que je voulais faire c'est dire $sql="SELECT * FROM base_physique WHERE ";

        et dans le cas ou $donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']=='')

        alors je concatene a sql auteur LIKE '%".$_POST["auteur"]."%'";
        et ensuite je fais ma requete $reponse = mysql_query($sql);

        while ($donnees = mysql_fetch_array($reponse))
        {
        ....

        je veux faire ca car dans un autre cas je pars encore de $sql="SELECT * FROM base_physique WHERE ";
        mais je concaténerais un autre truc si je veux par exemple faire une recherche par titre....
        1. nan ma base se nomme base_physique
          en fait ce que je voulais faire c'est dire $sql="SELECT * FROM base_physique WHERE ";

          et dans le cas ou $donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']=='')

          alors je concatene a sql auteur LIKE '%".$_POST["auteur"]."%'";
          et ensuite je fais ma requete $reponse = mysql_query($sql);

          while ($donnees = mysql_fetch_array($reponse))
          {
          ....

          je veux faire ca car dans un autre cas je pars encore de $sql="SELECT * FROM base_physique WHERE ";
          mais je concaténerais un autre truc si je veux par exemple faire une recherche par titre....
          1. Hé bien alors tu ne dois pas mettre :

            mysql_select_db("physique"); 


            Mais :

            mysql_select_db("base_physique"); 
            1. ben si physique c'est la bae et bse_physique c'est la table...
              1. Ok, excuse moi.
                Tente de vérifier la valeur de $sql avant la query avec un Echo, et renvoie nous le résultat s'il te plait.
                1. <?php
                  }
                  if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
                  {

                  $sql .=" auteur LIKE '%".$_POST["auteur"]."%'";
                  echo $sql;

                  $reponse = mysql_query($sql);

                  while ($donnees = mysql_fetch_array($reponse))
                  {

                  ca ne maffiche rien
                  en fait vu que je fais ma recherche sur une autre page et que je fais form action vers la page dont on parle depuis tout a lheure je me demande si il peut repéré ce qu'il y a dans le if
                  car si il ne reconnait pas qu'il est dans le if c'estr normal que ca marche pas
                  1. ta tester ta requete avec mysql ou autre je sais pas se que t'utilise? pour voir se qu'elle te ranvoi.
                    1. Je pense que tu as trouvé ta solution, en fait ton if test des valeur a la volé, mais ne les sauvegarde dans aucune variable, essaye tout bêtement d'incrémenter tout tes $_POST dans des variables, pour voir si cela peut provenir de là.