Moteur de recherche - sélection

Eléphant du PHP | 206 Messages

26 déc. 2005, 16:10

Bonjour à tous et joyeuses fêtes !!

J'ai un script de recherche pour ma bdd, le problème est que si je tape par exemple "po", cela va me retourner tous les noms de famille comportant "po"

Ce qu'il me faudrait, c'est que cela me retourne uniquement les noms de familles commençant par "po".

Quelqu'un à une idée ?

script de recherche :
<?php
include('connection.inc.php');
$query = "SELECT * FROM agent WHERE nom LIKE '%".$_POST['nom']."%' AND postal LIKE '%".$_POST['postal']."%' ORDER BY nom";
$reponse = mysql_query($query)or die ('Erreur SQL !<br>'.mysql_error());

while ($donnees = mysql_fetch_array($reponse) )
{?>

<table width="500" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td class="texte_gras"><?php echo $donnees['nom']; ?></td>
  </tr>
  <tr>
    <td class="texte"><?php echo $donnees['adresse1']; ?> / <?php echo $donnees['adresse2']; ?></td>
  </tr>
  <tr>
    <td class="texte"><?php echo $donnees['postal']; ?></td>
  </tr>
  <tr>
    <td class="texte"><?php echo $donnees['ville']; ?></td>
  </tr>
  <tr>
    <td class="texte"><?php echo $donnees['tel']; ?></td>
  </tr>
  <tr>
    <td height="1" class="texte" bgcolor="#0099FF"></td>
  </tr>
</table>

<?php echo "<br />"; ?>
<?php
}
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 déc. 2005, 16:13

bah :shock: :-k

si '%po%' veux dire "quelquechose+po+quelquechose", "po+quelquechose", c'est 'po%'

Franchement, je me demande si tu as cherché ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
fab
ViPHP | 2657 Messages

26 déc. 2005, 16:13

LIKE 'po%' ??? essaye sinon regarde du côté des regex sql
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

26 déc. 2005, 16:14

Salut, joyeuses fêtes à toi aussi.

la requete fait exactement ce que tu lui demandes, en utilisant l'opérateur LIKE avec 2 jokers % avant et apres le mot recherché le résultat retourné comportera au moins une fois ce meme mot peu importe en début, milieu ou fin.

Suffit donc d'enlever le 1er % si tu veut que le mot recherché commence par "PO". regarde la doc sur LIKE

EDIT: alors la s'il n'a pas compris :langue:
Modifié en dernier par Truc le 26 déc. 2005, 16:15, modifié 1 fois.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
fab
ViPHP | 2657 Messages

26 déc. 2005, 16:15

lol 3 réponses en 2 minutes c'est pas la classe ça :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 déc. 2005, 16:16

:langue:
/!\ ATTENTION : déplacement de poids lourds
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 206 Messages

26 déc. 2005, 16:17

... J'avoue j'avais pas cherché, mais je suis au taff, j'ai eu le tps, en tout cas merci beaucoup cela fonctionne, j'ai retirer effectivement le premier % du LIKE.

Désolé pour le dérangement :oops:

++

ViPHP
fab
ViPHP | 2657 Messages

26 déc. 2005, 16:21

ne soit pas désolé tu as posé une question sans cherché faut l'avoué et en etre fier lol :p </oula>
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }