Partage
  • Partager sur Facebook
  • Partager sur Twitter

Soucis recherche input text LIKE

Si quelqu'un pouvait se pencher sur mon probleme Merci...

Sujet résolu
    13 février 2006 à 17:04:36

    Bonjour à tous les zéros... :D

    J'ai un soucis avec ma recherche en php... J'aimerais afficher l'ensemble des livres présents dans ma base mysql grace a un input texte. Je sais qu'il faut faire avec un LIKE % % mais je ne comprends pas mon erreur...
    Alors si quelqu'un avait la bonté de se pencher sur mon code, ce serait très sympa. Merci Sébastien.

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data/users/c/clairafrique/catalogue.php on line 109.

    la ligne 109 correspond au $donnees=mysql_fetch_array($req)



    mysql_connect($host, $base, $passe); // Connexion à MySQL
                                    mysql_select_db($bdd); // Sélection de la base bdd
                           
                                    //S'il n'y a rien dans l'url
                                    if(!isset($_GET['livre']))
                                    {
                                            mysql_connect($host, $base, $passe); // Connexion à MySQL
                                            mysql_select_db($bdd); // Sélection de la base bdd
                                                                                                           
                                            ?>
                                           
                                            <form method="POST" action="catalogue.php">
                                           
                                                    Titre : <br> <input type='text' name='rectitre' ><br>
                                                   
                                                    <br>
                                                   
                                                    <input type='submit' value='rechercher'>
                                                    </center>
                                                   
                                                    <?php
                                                    if (empty($_POST['rectitre']))
                                                    {
                                                   
                                                            $donnees = mysql_query("SELECT * FROM livres ORDER BY RefLivre");
                                                   
                                                    }
                                                    else
                                                    {
                                                   
                                                            $donnees = mysql_query("SELECT * FROM livres WHERE Titre LIKE % '. $_¨POST['rectitre'] . ' %");
                                                    }
                                                    ?>
                                   
                                                    <center>
                                                    <br>
                                                    <table>
                                                            <tr>
                                                                    <th>Référence</th>
                                                                    <th>Titre</th>
                                                                    <th>Auteur(s)</th>
                                                                    <th>Categorie</th>
                                                                    <th>Prix</th>
                                                                    <th>&nbsp;</th>
                                                            </tr>
                                                    <?
                                                   
                                                    while($donnees=mysql_fetch_array($req))
                                                    {
                                                            echo"<tr>
                                                                            <td>"
    .$donnees['RefLivre']." </td>
                                                                            <td>"
    .$donnees['Titre']." </td>
                                                                            <td>"
    .$donnees['Auteur']." </td>
                                                                            <td> "
    .$donnees['Categorie']."</td>
                                                                            <td> "
    .$donnees['Prix']."</td>
                                                                            <td> <a href='catalogue.php?livre="
    .$donnees['IdLivre']."'>Commande</a></td>
                                                                    </tr>"
    ;
                                                    }
                                                           
                                                    mysql_close();
                                                    ?>
                                                    </table>
                                                    </center>
                                            </form>
                                            <?
                                    }
                                   

    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2006 à 18:15:48

      Bijour,
      $donnees = mysql_query("SELECT * FROM livres WHERE Titre LIKE % '. $_¨POST['rectitre'] . ' %");


      -->

      $donnees = mysql_query("SELECT * FROM livres WHERE Titre LIKE % '".$_POST['rectitre']."' %") OR die(mysql_error());


      Je sais pas ce que fout un tréma (¨) ici mais je pense que ça vient de là :p
      Et faut revoir un peu la concaténation :)

      EDIT Ares : Oups, quelques erreurs d'étourderies :p
      PS : je suis pas certain du placement des poucentages, essai un peu partout :)
      • Partager sur Facebook
      • Partager sur Twitter
        14 février 2006 à 10:28:31

        Merci Ares de prendre le temps de me répondre... C'est vrai il faut que je réapprenne les concaténations...

        Bref j'ai essayé avec ta solution et une autre mais maintenant j'ai une autre erreur qui est due aux %,

        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '% 'titre saisi' %' at line 1


        $req = mysql_query("SELECT * FROM livres WHERE Titre LIKE % '". $_POST['rectitre']. "' % ")


        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%dre%' at line 1


        $req = mysql_query("SELECT * FROM livres WHERE Titre LIKE %". $_POST['rectitre']. "%") OR die(mysql_error());



        Je n'arrive pas a voir ou il faut les placer... pourtant je me donne du mal... :)

        • Partager sur Facebook
        • Partager sur Twitter
          14 février 2006 à 11:15:14

          essaye ca :

          $requete = 'SELECT * FROM livres WHERE Titre LIKE "%'. $_POST['rectitre'].'%" ';
          $req = mysql_query($requete) OR die(mysql_error());
          • Partager sur Facebook
          • Partager sur Twitter
            14 février 2006 à 11:50:12

            C'est bon j'ai réussit en décomposant la requete:
            $rectitre= $_POST['rectitre'];
            $et = '%';
            $final= $et . $rectitre. $et ;
            $req = mysql_query("SELECT * FROM livres WHERE Titre LIKE '". $final. "'"

            Merci a vous deux...
            • Partager sur Facebook
            • Partager sur Twitter

            Soucis recherche input text LIKE

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown