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 :

[SQL] Page de recherches


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Sba3Net
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 128
    Par défaut [SQL] Page de recherches
    Bonjour et merci pour votre attention.

    Je suis entrain de créer un petit site web, et j'aimerais y mettre une page de recherche qui scan la base de données MySQL afin de trouver le mot cherché, le probleme c'est que j'ai ce message là :

    Notice: Undefined variable: exp in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 10
    Veuillez entrer un mot clé s'il vous plaît!

    Notice: Undefined variable: query in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 16

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\logossc\recherches.php3 on line 18


    et voici le code source de la page (Je suis novice dans 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
    <link href="style.css" rel="stylesheet" type="text/css" />
    <?
    $table = "ebooks";
    $base = "logos_sc";
    $link = mysql_connect("localhost","root","")
    or die ("Impossible de se connecter");
    mysql_select_db ("$base")
    or die ("Impossible d'accéder à la base de données");
     
    if (($exp=="") || ($exp==" ")) {
    echo "Veuillez entrer un mot clé s'il vous plaît!<p>";
    } 
    else {
    $query= "SELECT * FORM $table WHERE titre LIKE \"%$exp%\" or description  LIKE \"%$exp%\" or categorie  LIKE \"%$exp%\" or posteur LIKE \"%$exp%\" or auteur LIKE \"$exp\" or date LIKE \"%$exp%\" or id  LIKE \"%$exp%\"
    ";}
    $resultat = mysql_query($query);
    echo "<table>";
    while ($row = mysql_fetch_row ($resultat))
    {
    $id=$row[0];
    $titre=$row[1];
    $auteur=$row[2];
    $date=$row[3];
    $cate=$row[4];
    echo "<tr>
    <td width=10%>$id</td>
    <td width=30%>$titre</td>
    <td width=30%>$auteur</td>
    <td width=30%>$date</td>
    <td width=30%>$cate</td>
    </tr>";
    }
    echo "</table>";
    mysql_close();
    ?>

    Je ne comprend pas pour quoi ça donne une variable vide alors que j'ai remplis le formulaire de recherche, un simple mot que la page recherches.php doit trouver dans n'importes quel champs du table!

    Si vous avez des suggestions alors mille merci, et si vous avez une amélioration du code, alors merci infiniment!

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Deux choses l'une : soit tu n'as donnée qu'une partie du code, soit il te manque des choses dedans.

    Entre autres, il n'y a pas d'affectation pour la variable $exp. D'où est-elle censée provenir ?
    Le problème sur la variable $query provient du fait qu'elle n'est affectée que dans une branche d'un if/else, mais qu'elle est utilisée après ce bloc, quelque soit la branche empruntée. Donc si le script passe dans la mauvaise branche, $query n'est intialisée.

    Et un conseil : pense à utliser le renvoi d'erreur SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($query) or die ('Erreur SQL sur '.$query.' : '.mysql_error());
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé Avatar de Sba3Net
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 128
    Par défaut
    wé, j'ai dans la page d'aacueil, une barre de recherche avec une zone de text nommé exp (pour expression) alors quand je click sur chercher, j'ai la page d'erreur cité en haut! alors je ne sais pas quoi faire là!

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Quel est le code de la dite zone de texte (et éventuellement celui du formulaire complet) ? et celui par lequel tu récupères la valeur de la variable envoyée ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé Avatar de Sba3Net
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 128
    Par défaut
    ça resemble à ça :

    d'apres ce que j'ai lu, quand le formulaire envoie ces champs à la page de script déclaré dans action=page_de_script.php alors ces champs deviennent $exp dans mon cas, alors je crois que j'ai bien fait, mais le prob c'est est ce que je dois faire un include ou un require dans la page du script ou dans la page index! (répance blooen pour tout! lol )

  6. #6
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    Alors ce que tu dis fonctionne lorsque la directive register_global = on dans le fichier php.ini.

    La tienne doit etre à off, et doit rester sur off ! Question de sécurité oblige.

    Alors pour récupérer ta variable envoyé par formulaire.

    Il faut que tu spécifié l'attribut method : method = "post" ou method = "get" dans la balise <form> de ta page html.

    Ensuite dans ta page php tu fais :

    $exp = $_POST['exp'];

    ou

    $exp = $_GET['exp'];

    suivant la méthode spécifiée dans la balise form.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par Sba3Net
    d'apres ce que j'ai lu, quand le formulaire envoie ces champs à la page de script déclaré dans action=page_de_script.php alors ces champs deviennent $exp dans mon cas, alors je crois que j'ai bien fait, mais le prob c'est est ce que je dois faire un include ou un require dans la page du script ou dans la page index! (répance blooen pour tout! lol )
    on n'a pas du lire les mêmes tutoriaux...
    En règle générale, si ta methode est post, les variables se récupèrent par $_POST['nom_champ']
    Donc toi, il faudarit sans doute que tu utilises $_POST['exp'].

    Quelques liens : Les formulaires et php5 et Développement Web : "Zone Grand Débutant" (pour le cas où et parce que c'est plein de liens vers d'autres tutoriaux)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [SQL] Page blanche
    Par Michelinewedraogo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/04/2006, 23h31
  2. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27
  3. Sql ou vba recherche
    Par stargates dans le forum VBA Access
    Réponses: 6
    Dernier message: 09/02/2006, 19h54
  4. [PL/SQL - PAIR/IMPAIR] Recherche fonction
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 06/02/2006, 14h47
  5. [SQL] probleme sur recherche
    Par Tib781 dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2005, 12h31

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