Recherche dans une base mysql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 409 fois - Téléchargée 30 fois

Contenu du snippet

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 / Exemple :


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++;
}
?>

A voir également

Ajouter un commentaire

Commentaires

AsselusBorealiss
Messages postés
79
Date d'inscription
dimanche 15 octobre 2000
Statut
Membre
Dernière intervention
24 septembre 2007
-
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
S4RuM4N
Messages postés
4
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
16 août 2006
-
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
younes371
Messages postés
505
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
S4RuM4N , peux tu mettre ici l'ameliration du code possible
Merci
marc660
Messages postés
171
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
18 juillet 2007
-
Bonjour,

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


@+
AsselusBorealiss
Messages postés
79
Date d'inscription
dimanche 15 octobre 2000
Statut
Membre
Dernière intervention
24 septembre 2007
-
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+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.