begin process at 2010 02 10 14:33:32
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Base de données

 > FORMULAIRE DE RECHERCHE

FORMULAIRE DE RECHERCHE


 Information sur le tutoriel

Note :
8,2 / 10 - par 5 personnes
8,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

 Description

voici un simple formulaire de recherche par nom via PHP/Mysql

Tutorial

vous creer un fichier de connexion, connexion.php voici le code

<?php
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';// nom de votre base de donnée
//------- on affiche la date et l'heure -------------

$now_Y = date("Y");
$now_m = date("m");
$now_d = date("d");
$now_H = date("H");
$now_i = date("i");
$now_s = date("s");

$date = "$now_d-$now_m-$now_Y à $now_H:$now_i:$now_s";

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

?>

apres vous creez un autre fichier sous le nom : search.php

 

<?php
  include('connexion.php');

  echo $date;


    $h = $_POST['name'];
    echo "<BR><BR><BR>\n";

    echo $row['date']; 
    echo "Vous recherchez le id  <EM>$h</EM>.\n";
    echo "<BR><BR>\n";
    $SQL = "SELECT * FROM nomdevotretable WHERE Nom LIKE '$h%'";
    $result = mysql_query($SQL) or die("La requête <BR><PRE>$SQL</PRE>a échoué : ".mysql_error());
    $article =mysql_fetch_object($result);
    $result = mysql_query($SQL) ;
    //j'ai defini une variable $i pour afficher 5 enregistremnt par ligne
    echo "<TABLE border =\"0\" width=\"100%\" CELLPADDING=\"0\" cellspacing=\"0\">";

//initialiser la variable $i a 0
   $i=0;
   while($row = mysql_fetch_row($result))
      {
    if ($i==0)
     {
  echo "<TR>";
  }

//on incremente la variable
  $i=$i+1;

//$row[numero du champ a afficher]
  echo "<td  width=\"20%\" align=\"center\"> $row[7] <br>$row[1] $row[2] <br> <i><b><u>Service :</i></b></u>$row[8]</td>";
  if ($i==5)
  {
  echo "</TR>";
  $i=0;
  }
   }
 echo"</table>"; 

 

un autre fichier sous le nom : recherche.html

 

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<H1>Recherche du Nom: </H1>
<BR>
<CENTER>
<FORM ACTION="search.php" METHOD="POST">
Entrer le ID : <INPUT TYPE="text" NAME="name">
<BR><BR>
<INPUT TYPE="submit" VALUE="Rechercher">
</FORM>
</CENTER>

<BR><BR><BR>

</DIV>
</BODY>
</HTML>

et voila le tour est joué, bonne chance,croyez ça marche vraiment bien vous allez voir...BONNE CHANCE

et n'oublie pas de laissez vos commentaire

Commentaires

Commentaire de ombrey20 le 24/08/2005 13:38:35

esperant que ça va vous plair,mon tutorial
n'hesitez pas a laisser de commentaire..

Commentaire de chou774 le 23/09/2005 18:30:25

J'ai essayé ce code mais j'ai un pb de connexion à la base de données mysql
fonction mysql_connect()

Commentaire de jnbrunet le 27/09/2005 23:21:43

très bien pour quelqun qui apprend MySql

Jn
9/10

manque un peu de commantaire..

Commentaire de samuel2202 le 01/11/2005 19:01:47

Pour chou774 : c'est que tu as pas les bon indentifiants, bien sur fo les changer :D :p

Commentaire de code_grabber le 08/11/2005 14:23:47

pas mal, mais pour ta date, tu aurais pu faire beaucoup plus propre et synthétique.
pour garder le même format de sortie que toi, ca donne :

$date = date("d-m-Y")." à ".date("H-i-s");

pas besoin d'ecrire je ne sais combien de lignes ;-)

@+

Commentaire de code_grabber le 08/11/2005 14:27:30

idem dans ta requete, mettre un % c'est bien joli, mais ca ne correspond a rien, car en effet, le % à droite de ton expression recherchée indique que mysql ne va ramener QUE les enregistrement dans lesquels on trouve ta chaine et quelque chose derriere, mais c'est incomplet, il faut mettre un % avant aussi car si quelqu'un cherche une partie de mot, ton algo ne marchera jamais.

exemple :

- avec "toto%", tu vas ramener "toto1", "totomachin", ...
- avec "%toto%", tu vas ramener ceux de la ligne du dessus mais aussi "moitoto", "luitotomachin", etc... ce qui pour le coup est une vrai fonction de recherche.

@+

Commentaire de nekosan3 le 01/03/2006 11:52:03

Waaa super , je n'ai pas encore essayé ton tuto, mais je vais surement essayé dés que mon site sera bien finalisé. Je penses que je vais m'en servir pour un accés à un chat sur IRC, je remetterai un commentaire une fois fini. En totu cas merci c'est ce que je cherchais.

Commentaire de floquette le 26/06/2006 13:19:30

Ca marche! Merci beaucoup .
Pourriez-vous m'aider à ajouter un petit bout de code pour que la recherche se fasse sur plusieurs champs de la base. Je n'y arrive pas toute seule sans doute parce que je débute en php.
Merci encore.

Commentaire de code_grabber le 26/06/2006 16:52:21

pour floquette :

au lieu de : $SQL = "SELECT * FROM nomdevotretable WHERE Nom LIKE '$h%'";

tu fais : $SQL = "SELECT * FROM nomdevotretable WHERE Nom LIKE '$h%' OR Prenom LIKE '$h%'";

par exemple si tu veux chercher sur le champs nom mais aussi sur le champs prenom. L'operateur OR comme son nom l'indique veut dire OU ;)

par contre, je veux pas remuer le couteau dans la plaie... oui ton code marche, non il ne marche pas correctement car il ne recherche pas une chaine incluse dans une autre comme precise dans ma premiere remarque, et non il n'est pas du tout optimise, aucun respect des normes W3C, je trouve personnellement que meme si l'idee y est, c'est un tres mauvais tuto pour des debutants qui voudraient apprendre a coder correctement... maintenant, tu fais comme tu le sens, mais tant qu'a faire, fais le bien sinon c'est pas la peine de faire quelque chose.

Commentaire de code_grabber le 26/06/2006 16:53:29

tiens pour illustrer ce que je dis, essayes de balancer une expression avec une apostrophe au milieu, je suis sur que ton appli va aimer ca...

Commentaire de ombrey20 le 27/06/2006 16:56:51

hola everybody j'avais un petit projet a faire...
merci code_grabber,jnbrunet,
en fait je vais esseyer d'ameliorer mon code...
bon courage a ts

Commentaire de nulenphp le 12/09/2006 10:11:48

salut à tous,
je suis débutant dans le domaine et je trouve ce code super puisqu'il me permet d'exploiter une nouvelle base de données sur mon site...

Je souhaiterias toutefois apporter deux options supplémentaire au fonctionnement de ce code :

1. je voudrais obliger le visiteur à entrer un donnée dans le champ de la recherche => si on valide une recherche vide => message d'invite à entrer une donnée

2. si rien ne correspond à la recherche dans la base => ajouter un message informant le visiteur

Si quelqu'un pouvait m'aider , ça serait vraiment sympa !

Merci à tous
A+

Commentaire de ombrey20 le 12/09/2006 20:11:50

1-tu peux creer une liste deroulante pour parametrer la recherche dans votre base de donnée
2-si rien ne correspond a la recherche dans la base tu peux mettre ce code la :

    if(!empty($_POST['nom du champ'])
    {

  
        // tu définis ta requête de recherche
..........................

        
    }
      // sinon tu affiche un message d’erreur
      else
    {
    echo '<script language="Javascript">';
    echo 'alert("Remplissez le champ de recherche svp !");';
    echo 'javascript:history.back(1);';
    echo '</script>';
    }



allez bonne chance et bon courage


Commentaire de walidovich le 30/04/2008 01:25:10

bon ,comme  meme c bien moi je sui encor dubetant j'espere trouvé plus d'aide comme c truk et merci

Commentaire de sk2design le 09/07/2008 15:01:11

plz mon frére le script complet car votre tuto ne marche pas dans mon serveur local (easy php)

Commentaire de sk2design le 09/07/2008 15:02:34

car j'ai déja une table qui s'appelle test est voila la resultat de recherche
09-07-2008 ?  13:59:36



Notice: Undefined variable: row in C:\Program Files\EasyPHP 2.0b1\www\scripts MP3\recherche-BD\search.php on line 10
Vous recherchez le id news.

La requ??te

SELECT * FROM nomdevotretable WHERE Nom LIKE 'news%'
a ?©chou?© : La table 'test.nomdevotretable' n'existe pas

Commentaire de legerf le 15/08/2008 12:33:20

Préférer en PHP5/6 la librairie "mysqli" au lieu de "mysql". Voir "http://www.php.net/manual/fr/intro.mysqli.php" pour plus de détail.

Commentaire de nickos009 le 25/05/2009 17:34:02

ça marche tres bien ton code, c'est super

Commentaire de ombrey20 le 26/05/2009 02:18:34

n'oubliez pas de suivez les autres instructions pr améliorer le code
bonne chance Nickos009

Commentaire de VicTeams le 25/09/2009 20:48:40

Super ce code, cependant, j'ai une page vide quand j'ai plusieurs résultats de recherche.... Ya un topic sur le forum pour le support ?
Merci bonne continuation ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,094 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales