IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Réaliser outil de recherche [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Points : 59
    Points
    59
    Par défaut Réaliser outil de recherche
    Bonjour,

    J'essaie de réaliser un outil de recherche qui permettrait de trouver certaines informations sur mon site en fonction de mots clés.

    Je reçois toutefois les messages suivants sans pouvoir saisir mon erreur:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...

    Voici une partie de mon code PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
    // Variables initialization
    $recherche = "";
    $submitCheck = "1";
    $envoyer = "";
    $msg = "";
     
    // Form processing
    if ($submitCheck == "1") {
    	if(isset ($_POST['envoyer'])) {
    	$recherche = $_POST['recherche'];
    	$submitCheck = $_POST['submitCheck'];
    	$envoyer = $_POST['envoyer'];
    	if(empty($_POST['recherche'])) {
    		$msg.= "Veuillez entrer un critère de recherche.<br>";
    	} // end if empty
    	} // end if $_POST['envoyer']
    } // end if submitCheck
     
    // Database connection
    include("connexionBdd.php");
     
    // Input data filtering
    $recherche = strtoupper($recherche);
    $recherche = strip_tags($recherche);
    $recherche = trim ($recherche);
     
    // Searching for term
    $data = mysql_query("SELECT * FROM objects LIKE '%$recherche%'");
     
    // Counting the results - and if there isn't any provides a message
    $resultsCount = mysql_num_rows($data);
    if ($resultsCount == 0) {
    $msg.= "Désolé, aucun résultat ne correspond à votre critère de recherche.<br>";
    } // end if resultsCount
     
    Then I display my results...
    ?>

    Voici le code de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="rechForm" method="POST" action="rechercheForm.php">
    Recherche: <input type="text" name="recherche" size="15">
    <input type="hidden" name="submitCheck" value="1">
    <input type="submit" name="envoyer" value="Go">
    </form>
    <?php echo $msg; ?>
    Merci beaucoup !

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    et comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $data = mysql_query("SELECT * FROM objects LIKE '%" . $recherche . "%'");

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Points : 59
    Points
    59
    Par défaut
    Même chose, le message d'erreur demeure.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 149
    Points : 59
    Points
    59
    Par défaut
    Afin d'obtenir un message d'erreur plus précis, on m'a recommandé de modifier la ligne problématique par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = mysql_query("SELECT * FROM objects LIKE '%$recherche%'") or die("Erreur MySQL : ".mysql_error());
    Voici à présent le message d'erreur que je reçois:
    Erreur MySQL : Erreur de syntaxe près de 'LIKE '%%'' à la ligne 1

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Ta clause de contrainte n'est pas correxte. Il manque le mot clé WHERE, et le nom du chaps sur lequel tu effectues ta recherche.

    Si le champ s'appelait toto, ta requete serait

    SELECT * FROM objects WHERE toto LIKE '%$recherche%'

    bye

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Citation Envoyé par kaymak
    Ta clause de contrainte n'est pas correxte. Il manque le mot clé WHERE, et le nom du chaps sur lequel tu effectues ta recherche.

    Si le champ s'appelait toto, ta requete serait

    SELECT * FROM objects WHERE toto LIKE '%$recherche%'

    bye
    Correct

    J'avais même pas vu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Outil de recherche
    Par Ricard64 dans le forum SharePoint
    Réponses: 0
    Dernier message: 31/07/2007, 15h04
  2. Outil pour rechercher dans toutes la base
    Par ChrOnOs83 dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2006, 14h49
  3. Outils pour rechercher des fuites de memoires dans un prog
    Par elekis dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 29/04/2005, 21h06
  4. Outil de recherche de fuite mémoire
    Par eag35 dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 12h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo