Recherche dans base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recherche dans base de données

par Cyrano » 29 août 2005, 09:01

Un [Résolu] peut-être :?:

par Invité » 29 août 2005, 08:30

Merci à tous les deux,

C'est la premiere fois que j'ecris un message sur ce forum et je suis pas decu ! --> Réponses rapides, completes et pertinantes.

PS : Il y a une petite erreur je crois dans le ligne :
<i>Il y a <?php echo($nombre); ?>article(s) contenant «<?php echo($recherche); ?>».</i><br>

On ne verra pas afficher le contenant " xxx " car "$recherche" n'est pas defini, j'ai mis "$_POST['recherche']" et ca tourne nikel.

@+

par Ðjehouty » 27 août 2005, 17:11

lol je sais, c'est lourd, mais pour aller plus vite j'ai copié-collé le code de ma page directement ;) Les tableaux ne servent pas à grand chose... ;)
Merci pour l'amélioration, je vais en prendre compte ;)

par Cyrano » 27 août 2005, 16:15

Code : Tout sélectionner

<form method="post" action="trouver.php"> <br> <table border="1" cellspacing="0" cellpadding="0" bordercolor="#27476d" align="center" class="bordure" width="100%"> <tr> <td bgcolor="#315584"> <table border="0" cellspacing="0" cellpadding="2" align="center"> <tr> <td width="70"> <div align="left"> <input type="text" name="recherche" class="bouton"> </div> </td> <td> <input type="submit" name="submit" value="Recherche" class="bouton"> </td> </tr> </table> </td> </tr> </table> </form>
Plus lourd que ça, ça commence à devenir difficile ;)
Le même en plus simple:
<div style="text-align: center; background-color: #315584; border: 1px solid #27476d; padding: 3px 0">
<form method="post" action="trouver.php" style="margin: 0">
  <input type="text" name="recherche" class="bouton">&nbsp;<input type="submit" name="submit" value="Recherche" class="bouton">
</form>
</div>
D'autre part, il risque d'y avoir quelques surprises: les index des tableaux ne sont pas mis en chaine de caractères mais en constante, c'est le warning garanti: proposition de correction :
<?
$db = mysql_connect('host','login','mdp') or die ("erreur de connexion");
mysql_select_db('bdd',$db) or die ("erreur de connexion base");
$sql = "SELECT * FROM nom_de_ta_table WHERE texte LIKE '%". $_POST['recherche'] ."%' ORDER BY titre ASC ";
$req = mysql_query($sql) or die ("erreur sql ".mysql_error());
$nombre = mysql_num_rows($req);
?>
<i>Il y a <?php echo($nombre); ?>article(s) contenant «<?php echo($recherche); ?>».</i><br>
<?
// on affiche les résultats
while ( $resultat = mysql_fetch_array($req))
{
?>
<a href="article.php&id=<?php echo($resultat['id']); ?>"><?php echo($resultat['titre']); ?></a><br>
<?php
}
mysql_close();
?>

par Ðjehouty » 27 août 2005, 16:02

salut
en fait c'est tout simple, tu créé un formulaire comme ca par exemple:

Code : Tout sélectionner

<form method="post" action="trouver.php"> <br> <table border="1" cellspacing="0" cellpadding="0" bordercolor="#27476d" align="center" class="bordure" width="100%"> <tr> <td bgcolor="#315584"> <table border="0" cellspacing="0" cellpadding="2" align="center"> <tr> <td width="70"> <div align="left"> <input type="text" name="recherche" class="bouton"> </div> </td> <td> <input type="submit" name="submit" value="Recherche" class="bouton"> </td> </tr> </table> </td> </tr> </table> </form>
Et dans trouver.php:
<?
$db = mysql_connect('host','login','mdp') or die ("erreur de connexion");
mysql_select_db('bdd',$db) or die ("erreur de connexion base");

$req = mysql_query("SELECT * from nom_de_ta_table where texte LIKE '%$_POST[recherche]%' Order by titre Asc ") or die ("erreur sql ".mysql_error());
$nombre = mysql_num_rows($req);
?>
<i>Il y a <?php echo($nombre); ?>article(s) contenant «<?php echo($recherche); ?>».</i><br>
<?
// on affiche les résultats
while ( $resultat = mysql_fetch_array($req))
{
print '<a href="article.php&id='.$resultat[id].'">'.$resultat[titre].'</a><br>';
}

mysql_close();
?> 
Après <a href="article.php&id='.$resultat[id].'">'.$resultat[titre].'</a> peut changer, il suffit de mettre le '.$resultat[truc].' avec truc= une donnée de ta table, comme l'id, la date, le titre, etc...
Ta une demo ici: http://www.anneau-des-dieux.com/?page=wiki (en bas de la page, fait rechercher "stargate" par exemple)
Voila, je sais pas si c'est une super source? :?

par HD » 27 août 2005, 15:34

Recherche dans base de données

par kenshin » 26 août 2005, 13:43

Salut,

Voila j'ai ma base de données sql créé avec phpmyadmin, elle fonctionne bien.
Elle repertorie une liste d'entreprise avec leur coordonnée. J'ai fais un site sur ces entreprises et j'aimerai inclure u systeme de recherche, par exemple lorsqu'on tape "paris" dans un champ texte d'un formulaire, je veux qu'il recherche dans ma base de données tous le mots contenant "paris" et qu'il affiche toutes les entreprises de paris que j'ai dans ma base.

Voila, j'attend de l'aide.