Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RECHERCHE DANS UNE BASE MYSQL


Information sur la source

Catégorie :Base de données Classé sous : recherche, base, mysql, php, haryou Niveau : Débutant Date de création : 13/03/2005 Date de mise à jour : 30/11/2005 06:20:47 Vu : 16 842

Note :
3,33 / 10 - par 3 personnes
3,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Ce script est assez simple.
Il permet de faire une recherche sur des bases mysql.
Mes deux champs sur lesquels je fais ma recherche: client, file
Ma table : doc_clients
***
CREATE TABLE doc_clients (
   id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
   client VARCHAR (100) not null,
   file VARCHAR (100) not null
);
***
$motclef[$nbre_mots]) > 2 => permet de limiter la recherche (+de 2 caractères).
Je vous le propose.
haryou@free.fr
 

Source

  • Fichier config.php
  • ----------------------
  • <?
  • // Paramètres de connexion à la base de données
  • $host = "localhost"; // Host de la base de données
  • $user = "user"; // Login
  • $pass = "pwd"; // Mot de passe
  • $bdd = "bdd"; // Nom de la base de données
  • $table = "doc_clients"; // Nom de la table principale
  • $url = "http://lifeforce.int.xxxx.fr/stc/stcdoc/doc_clients/specificit_clients/"; // Répertoire contenant les différentes fiches
  • ?>
  • ----------------------
  • Fichier recherche.php
  • ---------------------------
  • <script language="JavaScript">
  • <!--
  • function rechercher() {
  • document.form_recherche.submit();
  • }
  • -->
  • </script>
  • <form name="form_recherche" method="post" action="<? echo $URL; ?>">
  • <input type="text" name="recherche" size="40" maxlength="100">
  • <input name="Submit" type="button" value="Rechercher" onclick="rechercher()">
  • </form>
  • <?
  • require 'includes/config.php';
  • // Connexion à la base de données
  • @mysql_connect($host,$user,$pass)
  • or die("Impossible de se connecter à la base de données");
  • @mysql_select_db("$bdd")
  • or die("Impossible de se connecter à la base de données");
  • // Variables
  • $recherche = strtolower($recherche);
  • $motclef = explode(" ",$recherche);
  • $nbre_mots = 0;
  • // Requête pour la recherche
  • while ($nbre_mots < sizeof($motclef)) {
  • if (strlen($motclef[$nbre_mots]) > 2) {
  • $query_client = mysql_query ("SELECT client, file FROM $table WHERE client LIKE '%$motclef[$nbre_mots]%' ");
  • $query_file = mysql_query ("SELECT client, file FROM $table WHERE file LIKE '%$motclef[$nbre_mots]%' ");
  • while ($row_client = mysql_fetch_array($query_client)) {
  • echo 'Trouvé dans le champ Client';
  • echo '<br>';
  • echo 'client:';
  • echo '<br>';
  • printf ("%s", $row_client[0]);
  • echo '<br>';
  • echo 'lien:';
  • echo '<br>';
  • printf ("%s", $row_client[1]);
  • }
  • while ($row_file = mysql_fetch_array($query_file)) {
  • echo 'Trouvé dans le champ Lien';
  • echo '<br>';
  • echo 'client:';
  • echo '<br>';
  • printf ("%s", $row_file[0]);
  • echo '<br>';
  • echo 'lien:';
  • echo '<br>';
  • printf ("%s", $row_file[1]);
  • }
  • }
  • $nbre_mots++;
  • }
  • ?>
Fichier config.php
----------------------
<?
// Paramètres de connexion à la base de données
$host = "localhost";              // Host de la base de données
$user = "user";                    // Login
$pass = "pwd";                    // Mot de passe
$bdd = "bdd";                      // Nom de la base de données
$table = "doc_clients";        // Nom de la table principale
$url = "http://lifeforce.int.xxxx.fr/stc/stcdoc/doc_clients/specificit_clients/"; // Répertoire contenant les différentes fiches
?>
----------------------
Fichier recherche.php
---------------------------

<script language="JavaScript">
<!--
function rechercher() {
 document.form_recherche.submit();
}
-->
</script>

<form name="form_recherche" method="post" action="<? echo $URL; ?>">
<input type="text" name="recherche" size="40" maxlength="100">
<input name="Submit" type="button" value="Rechercher" onclick="rechercher()">
</form>
<?
require 'includes/config.php';

// Connexion à la base de données
@mysql_connect($host,$user,$pass)
   or die("Impossible de se connecter à la base de données");
@mysql_select_db("$bdd")
   or die("Impossible de se connecter à la base de données");

// Variables
$recherche = strtolower($recherche);
$motclef = explode(" ",$recherche);
$nbre_mots = 0;

// Requête pour la recherche
while ($nbre_mots < sizeof($motclef)) {
 if (strlen($motclef[$nbre_mots]) > 2) {
  $query_client = mysql_query ("SELECT client, file FROM $table WHERE client LIKE '%$motclef[$nbre_mots]%' ");
  $query_file = mysql_query ("SELECT client, file FROM $table WHERE file LIKE '%$motclef[$nbre_mots]%' ");
  while ($row_client = mysql_fetch_array($query_client)) {
  echo 'Trouvé dans le champ Client';
  echo '<br>';
  echo 'client:';
  echo '<br>'; 
  printf ("%s", $row_client[0]);
  echo '<br>';
  echo 'lien:';
  echo '<br>';
  printf ("%s", $row_client[1]);
  }
  while ($row_file = mysql_fetch_array($query_file)) {
  echo 'Trouvé dans le champ Lien';
  echo '<br>';
  echo 'client:';
  echo '<br>';
  printf ("%s", $row_file[0]);
  echo '<br>';
  echo 'lien:';
  echo '<br>';
  printf ("%s", $row_file[1]);
  }
 }
 $nbre_mots++;
}
?>

Historique

20 mars 2005 19:16:29 :
ras
30 novembre 2005 06:20:48 :
Mise à jour de mots clés. Rien sur la source.

Commentaires et avis

signaler à un administrateur
Commentaire de AsselusBorealiss le 22/08/2005 00:16:50

Salut HaryOu

je suis debutant en php
et je voudrais savoir si il y avait possibilite une fois que la recherche a ete faite qu'il pointe directement dans la page et sur le mot trouver

Merci

Assel

signaler à un administrateur
Commentaire de S4RuM4N le 27/08/2006 11:14:45

Pas top :
- Pas de possibilité d'utiliser des structures de table dynamiques
- Pas de structure de recehrche avancée comme +texte -texte "phrase a trouver"
- Plusieurs echo, utilisation de printf
- mysql_fetch_array alors que mysql_fetch_row() suffirait
- Utilisation de variables directement dans un texte entre " " ( utiliser la concatenation avec ' ' )

pas mal de choses a ameliorer, meme si ca date d'un an

signaler à un administrateur
Commentaire de younes371 le 27/09/2006 11:46:59

S4RuM4N , peux tu mettre ici l'ameliration du code possible
Merci

signaler à un administrateur
Commentaire de marc660 le 10/07/2007 10:44:37

Bonjour,

Je ne comprend pas a quoi ça sert $url et  require 'includes/config.php et puis cette source ne marche pas.


@+

signaler à un administrateur
Commentaire de AsselusBorealiss le 10/07/2007 22:48:59

Salut marc660
waooowww 2005 je me souviens plus pourquoi j'avais pose une question
sinon marc la page config.php c'est juste la page qui pointe avec les login passW
a+

signaler à un administrateur
Commentaire de Antoine59840 le 10/11/2007 17:01:34 2/10

Salut,
Ton script ne marche pas sur free
C'est domage :s

signaler à un administrateur
Commentaire de Downlo le 08/08/2008 15:42:41

Bon, on va me dire que je suis de la vieille école, mais je ne trouve pas l'usage du javascript très pertinent dans ce cas. Pourquoi ne pas avoir tout simplement utilisé un <input type="submit"> ? Chez tous les clients où le JS est désactivé, le formulaire ne sera tout simplement pas envoyé.
Bon, ensuite, niveau sécurité, même si ce n'est pas le but de la source, c'est pas top. Le maxlength est laissé à la discrétion du navigateur, il ne faut jamais l'oublier, c'est-à-dire que n'importe qui peut injecter n'importe quoi par les en-têtes http. Et encore... L'absence de $_POST indique que les variables globales sont activées, ce qui est un risque énorme niveau sécurité :s il suffit d'appeler [url]?recherche=[...] à répétition pour saturer MySQL. (C'est d'ailleurs à cause de l'usage de ces variables globales que ce script ne marche pas chez Free, comme chez la plupart des hébergeurs sans doute.) Il aurait pourtant suffit de vérifier la longueur de la chaîne reçue pour éviter ce genre d'attaque.
Bon, quant aux mini-tags <? , je pense qu'il est inutile que je me prononce. C'est très mauvais pour la portabilité (Arf, je l'ai dit quand même -_-' ).
Ha, oui, aussi (promis, après j'arrête), les die servent également au debug, il serait donc intéressant de ne pas mettre deux fois le même message, ou d'y intégrer l'erreur renvoyée par MySQL...

Bon, je me rends bien compte que tout ce que je viens de dire ne faisait pas partie du but premier de ce script. Mais c'est aussi pour répondre à "ça marche paaaaaaas" ^^ et pour éviter que les débutants ne l'intègrent tel quel dans leurs projets.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

php & mysql [ par chako ] Salut, je suis entrain de développer une page web qui permet de la recherche dans la base de donnée à l'aide de php &amp; mysql et j'utilise wamp5_1.7 easy php et mysql query [ par abdouinfomiage ] bonjour,bon voila j ai installé le service de gestion de base de données mysql :mysql query,maysql admnistratormais quand j ai installer easyphp j arr créer moteur de recherche php / mysql (besoin d'aide) [ par witch32 ] bonjour!alors voilà, je dois créer un moteur de recherches de partition pour un site, mais je ne sais pas trop comment m'y prendre...les champs de rec Recherche Développeur PHP/MySQL et/ou graphiste web/flash [ par JPKalham ] Bonjour,http://www.moupo.com Description du projet : Moupo vous offre le meilleur du Web. Accédez aux informations essentielles du Cinema, Séries Télé Coordonnées Souris [ par la_main_sur_le_katana ] Bonjour,je suis actuellement en stage et je dois créer une apllication en PHP/MYSQL dans laquelle des images stockées dans la base de données seront a Recherche programmeur PHP/MySql pour jeux en ligne - Rémunéré. [ par PPCompany ] Notre société est acutellement à la recherche de programmeur PHP/MySql afin de coder des jeux en ligne.Voici un exemple de jeu que nous possédons actu Image / MySQL / php [ par hazkaal ] Bonjour !Je bosse sur un site et j'ai un probleme au niveau de laffichage d'images...Je m'explique :L'utilisateur upload une image. Cette image est st moniteur de recherche en php et mysql [ par tadjidine ] Bonjour à tous;je suis entrain de developpé un application gestion d'un agenda, je besoin de votre aide pour la formulaire de recherche , en faite ma se connecter à une base sql [ par matsumato ] bonjour; j'ai essayé de me connecter à ma base de donnée et afficher le champ ename dans ma table employer et j'ai l'erreur suivant : Warning: mysql_ Programme php pour transferer des donnees format Dbf dans une base de données format Mysql [ par Eljildius ] Salutation a tous !Je travail actuellement sur une application en php qui à un moment données devrat transférer des données format bdf dans une base d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,278 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.