smotte76

Inscris le 24/03/2011 à 20:03
  • Signature
    Stéph
  • Nombre de sujets
    1
  • Nombre de messages
    2
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

smotte76
le 24/03/2011 à 20:06
Rechercher chaîne de caractères dans une table sur plusieurs champs
Bonjour,

J'ai créé un annuaire en PHP.
L'utilisateur peut :
- Saisir un nom et tous les noms des contacts correspondant apparaissent.
- Saisir un prénom et toues les prénoms des contacts apparaissent.
En revanche, lorsque je saisis le nom et le prénom, je rencontre un problème.
Exemple : si je saisie paul martin, le site m'affiche tous les martin et tous les paul.
Je voudrai qu'il me recherche l'expression entière. Le souci est que je recherche dans deux champs : nom et prénom.

En fait l'utilisateur doit pouvoir rechercher soit :
- par le nom
- par le prénom
- par l'expression exacte (ex : paul martin) sauf qu'il me sorte tous les martins.

Voici mon code si vous avez une idée ou un tuyau.

Merci beaucoup.

<?php
include("../connexion.php");
$sql = "select * from tadherents";
if (isset($_REQUEST["filtre"]))
{

$v_contact=$_GET['filtre'];

$v_nb=str_word_count($v_contact);

if ($v_nb==1)
{
$sql .= " where nom like '%$v_contact%' or prenom like '%$v_contact%'";
}
else
{

$mots = explode( " ", $v_contact );


$sql = "SELECT * FROM tadherents WHERE ";
for( $i = 0; $i < count( $mots ); $i++ ) {
$sql .= "nom LIKE '%". $mots[$i] ."%' OR prenom LIKE '%". $mots[$i] ."%'";
if( $i < count( $mots ) - 1 )
$sql.= " OR ";
}


}

}
$vresultat=mysql_query($sql);
?>
<HTML>
<H1>Résultat</H1>
<Form>
<input type="text" name="filtre">
<input type="submit" value="rechercher">
</Form>
<TABLE border=2 align=center>
<TR align='center'>
<TD>Nom</TD>
<TD>Prénom</TD>
<TD>Photo</TD>
</TR>
<?php while(($vligne = mysql_fetch_assoc($vresultat ))!==false): ?>
<TR>
<TD><?php echo $vligne["nom"];?></TD>
<TD><?php echo $vligne["prenom"];?></TD>
<TD><IMG SRC="/images/<?php echo $vligne ['photo']; ?>"></TD>
</TR>
<?php endwhile; ?>
</Table>
</UL>
</BODY>
</HTML>
Stéph
LoadingChargement en cours