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 :

Rechercher et lister des informations d'une bdd


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut Rechercher et lister des informations d'une bdd
    Bonjour à tous,

    J'ai créé une base de données qui contient une longue liste de personnes et diverses informations. Je souhaiterais créer une page en php avec une case de recherche et que cette recherche aille directement lire la base de données et affiche les résultats sous forme de tableau.
    Par exemple si je tape "dupont" dans ma case recherche, je veux que tous les dupont présents dans la base de données soient listés par ordre alphabétique de préférence sous forme de tableau et que toutes les informations relatives à ces dupont s'affichent également.
    Quelqu'un peut-il m'aider ou me guider dans cette réalisation svp car j'ai très peu de connaissances en programmation.

    merci pour votre aide
    a++

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est très basique :
    - un formulaire HTML avec un champ pour ton critère.
    - une requete SQL SELECT * FROM ta_table WHERE ton_critere = valeur_recue_du_formulaire
    - On affiche le résultats.

    Il faut juste ne pas oublié de proteger la valeur reçue du formulaire avec mysql_real_escape_string()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    Merci pour vos réponses,

    en m'aidant de tutos trouvés sur internet, j'ai ce code pour faire ma recherche dans la base de données, mais quand je clique sur rechercher, j'ai cette erreur : "Parse error: parse error in C:\wamp\www\search.php on line 67"

    Je vais surligner en gras la ligne 67 dans le code.

    Savez-vous de quoi ça peut venir ?

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <?php        
                    $serveur = "localhost"; 
                    $utilisateur = "root";
                    $motDePasse = ""; 
                    $baseDeDonnees = "dbb"; 
     
                    mysql_connect($serveur,$utilisateur,$motDePasse) or die ("Connexion 
                    au serveur impossible");
                    mysql_select_db($baseDeDonnees) or die ("Connexion a la base 
                    impossible"); 
    				echo " <html> <head> <title> Résultat de la recherche </title> 
                    </head> <body> ";
     
                    if (($Mot == "")||($Mot == "%")) { 
                        echo " <br> 
                                  <div class=\"resultat\"> Veuillez entrer un mot clé s'il vous
                                   plaît </div> 
                        ";
                    } 
     
     
    				else 
                    {
     
                        $query = "SELECT colonne1, colonne2 FROM table1 WHERE
                        colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                        $result = mysql_query($query); 
                        $row = mysql_fetch_row($result); 
                        $Nombre = $row[0];
     
     
                        if ($Nombre == "0") { 
                            echo " 0 page trouvé pour : $Mot <br> 
                                      Assurez-vous que les mots sont bien orthographiés. <br>
                                      Essayez avec moins de mots. <br> 
                                      Essayez d'autres mots-clés. ";
                        } 
     
     
                        else { 
                            $query = "SELECT colonne1, colonne2 FROM table1
                            WHERE colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                            $result = mysql_query($query); 
     
     
                            if ($Nombre == "1") { 
                                echo " 1 page trouvé pour : $Mot "; 
                            } 
     
     
                            else { 
                                echo " $Nombre pages trouvés pour : $Mot "; 
                            }  
     
     
                            while($row = mysql_fetch_row($result)) { 
                                echo " 
                                    <a href="../$row"> $row[1] </a> \n 
                                    $row[2] \n 
                                    <a href="../$row"> [Voir tout l'article] </a> 
                                "; 
                            } 
                        } 
                    } 
     
                    mysql_close(); 
     
                    echo " </body> </html> "; 
                ?>

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    Simple quote pour le close like.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = "SELECT colonne1, colonne2 FROM table1 WHERE
                        colonne1 LIKE '%".$Mot."%' OR colonne2 LIKE '%".$Mot."%'" ";
    Je vais surligner en gras la ligne 67 dans le code.
    Tu peux nous montrer?

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 98
    Points : 86
    Points
    86
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo " 
                                    <a href="../$row"> $row[1] </a> \n 
                                    $row[2] \n 
                                    <a href="../$row"> [Voir tout l'article] </a> 
                                ";
    Tu n'as pas surligné la ligne en question...
    De ce coté-ci, vérifie déjà tes guillemets dans ta balise <a>...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    ah oui j'ai oublié de surligner la ligne 67 :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php        
                    $serveur = "localhost"; 
                    $utilisateur = "root";
                    $motDePasse = ""; 
                    $baseDeDonnees = "dbb"; 
    
                    mysql_connect($serveur,$utilisateur,$motDePasse) or die ("Connexion 
                    au serveur impossible");
                    mysql_select_db($baseDeDonnees) or die ("Connexion a la base 
                    impossible"); 
    				echo " <html> <head> <title> Résultat de la recherche </title> 
                    </head> <body> ";
    
                    if (($Mot == "")||($Mot == "%")) { 
                        echo " <br> 
                                  <div class=\"resultat\"> Veuillez entrer un mot clé s'il vous
                                   plaît </div> 
                        ";
                    } 
                    
    				
    				else 
                    {
    
                        $query = "SELECT colonne1, colonne2 FROM table1 WHERE
                        colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                        $result = mysql_query($query); 
                        $row = mysql_fetch_row($result); 
                        $Nombre = $row[0];
    
    
                        if ($Nombre == "0") { 
                            echo " 0 page trouvé pour : $Mot <br> 
                                      Assurez-vous que les mots sont bien orthographiés. <br>
                                      Essayez avec moins de mots. <br> 
                                      Essayez d'autres mots-clés. ";
                        } 
    
    
                        else { 
                            $query = "SELECT colonne1, colonne2 FROM table1
                            WHERE colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                            $result = mysql_query($query); 
    
    
                            if ($Nombre == "1") { 
                                echo " 1 page trouvé pour : $Mot "; 
                            } 
                    
    
                            else { 
                                echo " $Nombre pages trouvés pour : $Mot "; 
                            }  
    
    
                            while($row = mysql_fetch_row($result)) { 
                                echo " 
                                    <a href="../$row"> $row[1] </a> \n 
                                    $row[2] \n 
                                    <a href="../$row"> [Voir tout l'article] </a> 
                                "; 
                            } 
                        } 
                    } 
        
                    mysql_close(); 
    
                    echo " </body> </html> "; 
                ?>

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    La réponse de fixbraun répond à ton problème, corrige les quotes comme je t'ai proposé.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    c'est bon c'est résolu, merci pour votre aide, c'était bien ça, par contre maintenant quand je lance ma recherche j'ai un rapport d'erreur disant que Apache HTTP Server a rencontré un problème, celà peut venir d'une erreur dans le code ?


  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    Mon problème vient de la commande "mysql_close();" , en la supprimant je n'ai plus le soucis de plantage de Apache.
    Par contre j'ai encore un autre soucis, j'ai l'erreur suivante :
    Notice: Undefined variable: Mot in C:\wamp\www\search.php on line 19
    Ma page de recherche est en html, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form method="post" action="search.php"> 
    Entrez un mot clé: <br> 
    <input type="text" name="Mot" size="15"> 
    <input type="submit" value="Rechercher" alt="Lancer la recherche!"> 
    </form>

    Voici le code du script de recherche :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    <?php        
                    $serveur = "localhost"; 
                    $utilisateur = "root";
                    $motDePasse = ""; 
                    $baseDeDonnees = "bdd"; 
     
     
                    mysql_connect($serveur,$utilisateur,$motDePasse) or die ("Connexion 
                    au serveur impossible");
     
     
                    mysql_select_db($baseDeDonnees) or die ("Connexion a la base 
                    impossible"); 
                    echo " <html> <head> <title> Résultat de la recherche </title> 
                    </head> <body> ";
     
     
                    if (($Mot == "")||($Mot == "%")) { 
                        echo " <br> 
                                  <div class=\"resultat\"> Veuillez entrer un mot clé s'il vous
                                   plaît </div> 
                        ";
                    } 
                    else 
                    {
     
     
                        $query = "SELECT colonne1, colonne2 FROM table1 WHERE
                        colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                        $result = mysql_query($query); 
                        $array = mysql_fetch_array($result); 
                        $Nombre = $array[0];
     
     
                        if ($Nombre == "0") { 
                            echo " 0 page trouvé pour : $Mot <br> 
                                      Assurez-vous que les mots sont bien orthographiés. <br>
                                      Essayez avec moins de mots. <br> 
                                      Essayez d'autres mots-clés. ";
                        } 
     
     
     
                        else { 
                            $query = "SELECT colonne1, colonne2 FROM table1
                            WHERE colonne1 LIKE \"%$Mot%\" OR colonne2 LIKE \"%$Mot%\" "; 
                            $result = mysql_query($query); 
     
     
                            if ($Nombre == "1") { 
                                echo " 1 page trouvé pour : $Mot "; 
                            } 
     
     
                            else { 
                                echo " $Nombre pages trouvés pour : $Mot "; 
                            }  
     
     
                            while($array = mysql_fetch_array($result)) { 
                                   echo '
       									<a href="../'.$row.'"> '.$row[1].' </a>
       									'.$row[2].'
       									<a href="../'.$row.'"> [Voir tout l\'article] </a>
       								';
                            } 
                        } 
                    } 
     
     
     
                    echo " </body> </html> "; 
                ?>

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta variable $Mot n'est pas définie.

    Apres la connexion à la base de donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Mot = mysql_real_escape_string($_POST['Mot']);
    $_POST contient les variables recues d'un formulaire POST.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 55
    Points : 34
    Points
    34
    Par défaut
    merci pour ta réponse mon problème s'est résolu mais je vais de problèmes en problèmes, maintenant j'ai ce message d'erreur :
    Notice: Undefined offset: 2 in C:\wamp\www\search.php on line 70
    Pour info la ligne 70 c'est la ligne rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '
         <a href="../'.$row.'"> '.$row[1].' </a>
         '.$row[2].'
         <a href="../'.$row.'"> </a>
    ';

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Etant donné que tu SELECT deux champs dans ta requete tu as $row[0] et $row[1], pas $row[2]
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [XL-2013] Rechercher et lister des données dans une feuille depuis un formulaire
    Par UZeInDub dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2015, 09h49
  2. Rechercher des informations dans une base de donnée en excel
    Par simonasjdp dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2009, 19h10
  3. Obtenir le listing des tables d'une BDD
    Par zoubidaman dans le forum Outils
    Réponses: 1
    Dernier message: 10/11/2004, 00h17
  4. liste des tables d'une BDD
    Par 120 dans le forum ASP
    Réponses: 4
    Dernier message: 21/06/2004, 14h06
  5. Fichier log des requêtes d'une bdd
    Par Sub0 dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 14h12

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