Probléme de reflexion en php

Résolu
Bonjour,
j'ai un petit souci j'ai fait unprog qui recherche par champs dans une bdd ais je ne vois pas comment faire pour qu'il me renvoie" aucun résultat na été trouvé" quand je fais une recherche si ce que j'ai tapé n'est pas dans la bdd.

mon code :
<?php

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

$reponse = mysql_query("SELECT * FROM base_physique WHERE auteur LIKE '".$_POST['auteur']."'"); // Requête 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['motscle']; ?> <br/>
<a href="<?php echo $donnees['pdf']?>"> Clique ici pour voir le pdf associé </a>
</p>

la ca traite juste le c as ou je recherche par auteur(j'ai fait tous les autres cas) mais je voudrais faire now que si rien ne correspond cela m'affiche ' aucun résultat'
je pensais à un truc du style la:
if (($_POST['auteur']!='') || ($_POST['titre']!='') || ($_POST['année']!='') || ($_POST['journal']!='') || ($_POST['motscle']!=''))
{
echo'aucun résultat'

mais il y a des "contradicrtions" car par ex pour le cas ou je recherche par auteur on aura $_POST['auteur']!='' mais il ne faut pas pour autant afficher aucun résultat....

please help me...
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. j'ai pas tous lu mais je pense que tu pourrais faire une petite condition du genre :

    if (mysql_num_rows ($reponse) == 0)
    echo "aucun résultat a afficher";
    else
    {
    //le reste du traitement en cas de réponse
    }
    1. $reponse = mysql_query("SELECT * FROM base_physique WHERE auteur LIKE '".$_POST['auteur']."'"); // Requête SQL

      if( mysql_num_rows( $reponse ) == 0
      {
      .... instructions pour traiter le cas où pas de réponse
      }
      else
      {
      while ($donnees = mysql_fetch_array($reponse))
      {
      ... etc
      1. Pense à utiliser un ! devant tes variables

        http://www.tayo.fr/savoir-si-une-variable-a-du-texte-en-php-grce--!-astuce.php
        1. Bonjour,

          Ajoutes des % % pour ton POST: LIKE %'.$_POST['tavar'].'%' pour que ça recherche ton auteur dans le nom complet :)

          A bientot.
          1. <?php

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

            $reponse = mysql_query("SELECT * FROM base_physique WHERE auteur LIKE '".$_POST['auteur']."' AND titre LIKE '".$_POST['titre']."'AND année LIKE '".$_POST['année']."'");

            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['motscle']; ?> <br/>
            <a href="<?php echo $donnees['pdf']?>"> Clique ici pour voir le pdf associé </a>
            </p>
            <?php
            }
            }
            ?>

            ...... ou tous les autres cas sont aussi gérés
            et la à la fin je veux que ca gére ler cas où la recherche ne donne aucun résultat mais ca ne marche pas
            quelqu'un a une idée?

            <?php
            if (($_POST['auteur']!='') || ($_POST['titre']!='') || ($_POST['année']!='') || ($_POST['journal']!='') || ($_POST['motscle']!=''))
            {
            $reponse2 = mysql_query("SELECT * FROM base_physique");

            if( mysql_num_rows( $reponse2 ) == 0 )
            {
            echo "Aucun résultat ne correspond à votre recherche";
            ?>
            <?php
            }
            }
            ?>
            1. c'est bon cela marche bien avec la proposition de croy donc merci a lui