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 :

Recherche dans une base [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Par défaut Recherche dans une base
    Bonjour le forum

    Voilà avec l’aide des membres de ce forum, je suis parvenu ces dernières jours a créer une petite base de donnés, de 6 champs.
    Pour certains entre vous ça l’air de rien mais pour mois c’est pas mal.
    Ci-dessous mon code au complet, tout est là, le fichier fonctions.php pour instant il sert uniquement à l’affichage des liens vers les pages.
    Sur ma lancé je souhaiterai ajouter un petit moteur de recherche à cette base.
    J’ai regardé sur le net il y a beaucoup de scripts mais ça devient trop compliqué pour essayer des les adapter.
    Alors si quelqu’un a envie de me donner un coup de main ça serait vraiment sympa.
    Merci d’avance.
    <?php
    //=========================================
    // includes du fichier fonctions
    //=========================================
    require 'fonctions.php';
    //=========================================
    // information pour la connection à le DB
    //=========================================
    $host = 'localhost';
    $user = 'user';
    $pass = 'pass';
    $db = 'base';

    //=========================================
    // initialisation des variables
    //=========================================
    // on va afficher 7 résultats par page.
    $nombre = 7;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // si limite n'existe pas on l'initialise à zéro
    if (!$limite) $limite = 0;
    // on cherche le nom de la page.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $path_parts = pathinfo($_SERVER&#91;'PHP_SELF']);
    $page = $path_parts&#91;"basename"];

    //=========================================&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // connection à la DB
    //=========================================
    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());

    //=========================================&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // requête SQL qui compte le nombre total
    // d'enregistrements dans la table.
    //=========================================
    $select = 'SELECT count(id) FROM base_cepm';
    $result = mysql_query($select,$link)&#160;&#160;or die ('Erreur : '.mysql_error() );
    $row = mysql_fetch_row($result);
    $total = $row&#91;0];
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //=========================================
    // vérifier la validité de notre variable
    // $limite;
    //=========================================
    $verifLimite= verifLimite($limite,$total,$nombre);
    // si la limite passée n'est pas valide on la remet à zéro
    if(!$verifLimite)&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $limite = 0;
    }
    //=========================================
    // requête SQL qui ne prend que le nombre
    // d'enregistrement necessaire à l'affichage.
    //=========================================

    if (isset($_GET&#91;'sens'])) {
    &#160;&#160;if (
    $_GET&#91;'sens'] == 'ASC') { $sens = 'DESC';}
    &#160;&#160;elseif (
    $_GET&#91;'sens'] == 'DESC') { $sens = 'ASC';}
    &#160;&#160;else {
    $sens = 'ASC';}
    }

    if (isset(
    $_GET&#91;'ordre'])) $ordre = $_GET&#91;'ordre'];
    else
    $ordre = 'Genre';

    $select = 'select photo,genre,espece,famille,origine,exposition FROM base_cepm ORDER BY '.$ordre.' '.$sens.' limit '.$limite.','.$nombre;

    $result = mysql_query($select,$link)&#160;&#160;or die ('Erreur : '.mysql_error() );
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //=========================================&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// si on a récupéré un resultat on l'affiche.
    //=========================================
    if($total) {
    // début du tableau
    echo '<table bgcolor="#FFFFFF">'."\n";
    // première ligne on affiche les titres prénom et surnom dans 2 colonnes
    echo '<tr>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=photo&sens='.$sens.'&limite='.$limite.'"><b><u>Image</u></b></a></td>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=genre&sens='.$sens.'&limite='.$limite.'"><b><u>Genre</u></b></a></td>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=espece&sens='.$sens.'&limite='.$limite.'"><b><u>Espèce</u></b></a></td>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=famille&sens='.$sens.'&limite='.$limite.'"><b><u>Famille</u></b></a></td>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=origine&sens='.$sens.'&limite='.$limite.'"><b><u>Origine</u></b></a></td>';
    echo
    '<td bgcolor="#669999"><a href="'.$_SERVER&#91;'PHP_SELF'].'?ordre=exposition&sens='.$sens.'&limite='.$limite.'"><b><u>Exposition</u></b></a></td>';
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo
    '</tr>'."\n";
    // lecture et affichage des résultats sur 6 colonnes&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    while($row = mysql_fetch_array($result)) {
    echo
    '<tr>';&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;echo '<td bgcolor="#CCCCCC">'.$row&#91;'photo'].'</td>';&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    echo
    '<td bgcolor="#CCCCCC">'.$row&#91;'genre'].'</td>';
    echo
    '<td bgcolor="#CCCCCC">'.$row&#91;'espece'].'</td>';
    echo
    '<td bgcolor="#CCCCCC">'.$row&#91;'famille'].'</td>';
    echo
    '<td bgcolor="#CCCCCC">'.$row&#91;'origine'].'</td>';
    echo
    '<td bgcolor="#CCCCCC">'.$row&#91;'exposition'].'</td>';
    echo
    '</tr>'."\n";
    }
    echo
    '</table>'."\n";
    }
    else echo
    'Pas d\'enregistrements dans cette table...';
    mysql_free_result($result);
    //=========================================&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    // si le nombre d'enregistrement à afficher
    // est plus grand que $nombre
    //=========================================
    if($total > $nombre) {
    // affichage des liens vers les pages
    echo 'Page' ;
    affichePages($nombre,$page,$total);&#160;&#160;
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  2. #2
    Membre éprouvé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Par défaut
    oyé oyé
    essaye de faire des requetes SELECT en fonction du genre ou de l'espece ect...
    tu fais genre un petit formulaire (d'un champs ), tu veux rechercher par exxemple un chien select * from tabase where espece = chien

    c'est vrai que els moteurs de recherches sont assez balèze sur le net j'en avais un j'ai vite zapé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Par défaut
    Bonjour, le forum
    Tout d’abord félicitations à toute l’équipe de developpez.com pour ce nouveau Forum.

    Merci oceane 751 pour tes infos, j’ai pensé que c’été ça qu’il fallait faire.
    Mais le problème est que chaque fois que j’essaye d’adapter un formulaire j’ai toujours des erreurs.

    Alors sans vouloir abuser de ta générosité ou celle de quelqu’un d’autre si ou pouvais me mettre ici le code ça serait vraiment sympa.
    Merci

  4. #4
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Citation Envoyé par Pias
    Mais le problème est que chaque fois que j’essaye d’adapter un formulaire j’ai toujours des erreurs.
    Tu peux toujours poster ton formulaire et on t'aidera à résoudre les problèmes

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 66
    Par défaut
    Salut, Linaa
    Ci-dessous le exemple du formulaire que j’essaye d’adapter.
    Il me provoque des erreurs et un plus il faut faire la liaison avec mes tables avec un select, mais très fraîchement je galère.
    Merci de l’aide
    <?php
    print ("<form method=\"post\" action=\"mapage.php\"><br>Recherche : <input type="text" name=\"recherche\" size=\"12\"><input type=\"submit\" value=\"OK\"></form>");
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  6. #6
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Tu devrais eviter de faire des print ou des echo, lorsque ce n'est pas utile (code HTML).
    Ainsi, tu t'embeteras moins avec les problèmes de guillemets à echapper !

    Rien qu'en voyant la coloration syntaxique du code, on voit l'erreur
    Tu as oublier d'échapper quelques guillemets (autour de type="text")

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

Discussions similaires

  1. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  2. [SGBD] problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 23/10/2005, 23h06
  3. Recherche dans une base de donnée
    Par genova dans le forum SQLite
    Réponses: 8
    Dernier message: 28/09/2005, 23h16
  4. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47
  5. recherche dans une base de donnée+boucle
    Par eric205 dans le forum Bases de données
    Réponses: 8
    Dernier message: 15/03/2005, 21h14

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