Espace dans menu déroulant

Répondre
LACHEMOI
le 09/06/2006 à 19:13
LACHEMOI
Bonjour, je fais une liste à partir d'un menu déroulant qui contient plusieurs champs d'un DB.
Lorsque je veux via le clavier, en saisissant, le nom désiré ... rendu au premier espace il ne continu pas la recherche. exemple "la famille Dupres". il va s'arréter après "la" !!!
Je débute en programmation et PHP (1 mois) et certaines éléments de base m'échappent. Est-ce du à Windows? Y a t-il un bout de code que je pourrais rajouter à ma requete, qui fonctionne !!!

Voici le code :

<?php
//la requete:
$tot = mysql_query("SELECT `na_name`, `na_adress_1`, `na_adress_2`, `na_adress_3` FROM `les_amis`")or die(mysql_error());

//la boucle
while($val=mysql_fetch_array($tot))
{
echo "<option>".$val['na_name']." ".$val['na_adress_1']." ".$val['na_adress_2']." ".$val['na_adress_3']."</option>";
}

?>
</select>
</form>

Merci

Jean-Louis
i M@N
le 09/06/2006 à 19:29
i M@N
Hello !

Regarde cet exemple qui récupère la chaîne entrée dans un formulaire du type :
<input type="texte" name="recherche">
<?php 
/*on récupère la variable du formulaire issue de $_GETet on l'initialise*/
if (isset($_GET['recherche'])) $recherche = htmlentities($_GET['recherche']); else $recherche = "";
/*si elle n'est pas vide on continue*/
if ($_GET['recherche'] != "") {
/*on se connecte à notre base*/
include('./base_connexion.php');
/*lancement de la requête*/
$sql = 'SELECT champ1,champ2,champ3 FROM table WHERE champ2 LIKE "%'.$recherche.'%"';
/*on lance la requête (mysql_query) et on impose un message d'erreur
si la requête ne se passe pas bien (or die)*/
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
/*on va scanner tous les tuples un par un*/
while ($data = mysql_fetch_array($req)) {
/*on récupère les valeurs qui nous intéressent*/
$champ1 = $data['champ1'];
$champ2 = $data['champ2'];
$champ3 = $data['champ3'];
/*on affiche les résultats*/
echo $champ1.' '.$champ2.' '.$champ3;
}
/*on libère l'espace mémoire alloué à cette requête*/
mysql_free_result ($req);
/*on ferme la connexion à la base de données*/
mysql_close ();
}
?>


@+...
One Love, One Heart, One Unity.
LA GLOBULE
le 09/06/2006 à 20:01
LA GLOBULE
Pour faire une recherche dans du TEXT ou du VARCHAR, il est préférable de créer un index FULLTEXT sur le champs de la table SQL (une recherche avec un LIKE, MySQL n'aime pas du tout).

Puis, tu fais une requete du genre :

$sql = "SELECT blu, blu2 FROM table WHERE MATCH (champ_ou_y_a_l_index) AGAINST ('".$recherche."')";

Lien pour la documentation
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours