Page 1 sur 1

PB d'espace blanc dans un sélect

Posté : 08 oct. 2013, 16:53
par Invité
Bonjour,
Désolé, mais le titre n'est pas très explicite.
J'essaie de construire une interface qui me donne accès à différents éléments d'une base de données. Tout va bien sauf quand je mets en place des filtres par menu déroulant.
Les filtres fonctionnent sauf quand il y a un espace dans l'intitulé du filtre.

Pour exemple voici mon code :

Code : Tout sélectionner

echo "<select name=\"letri\" id=\"letri\">"; while ($donroutage = $verif_routage->fetch()){ echo "<option value=\"".$donroutage['routage_element']."\">".$donroutage['routage_element']."</option>"; } echo "</select>";
Quand la variable $donroutage['routage_element'] correspond à un intitulé comportant un espace blanc (par exemple "IP fixe") et que je m'en sers pour afficher mes éléments :

Code : Tout sélectionner

$verification = $bdd->query("SELECT * FROM routage WHERE routage.nature =\"$letri\"");
Je ne ressors aucun résultat alors qu'avec le même code et un élément qui ne porte pas d'espace blanc (par exemple "VPN") les résultats sortent bien.

Ce n'est donc pas mon script qui ne fonctionne pas mais quelque chose qui bloque quand il y a un espace blanc.

J'ai regardé dans le code html résultant en affichant ma variable $letri (correspondant au sélect) et il n'y a pas de %20 comme parfois en html. Et comme je n'arrive pas bien à exprimer le problème, Google ne m'a été d'aucune aide.

Si quelqu'un a une idée, je suis preneur.
Merci d'avance.
D.

Re: PB d'espace blanc dans un sélect

Posté : 08 oct. 2013, 17:21
par moogli
salut,

1/ en SQL le délimiteur de chaine de caractères est le ' est pas le " ;)
2/ à priori $letri n'existe pas a moins que tu n'ai du code qui traite la valeur du formulaire.
3/ ton code semble sensible à l'injection SQL.

je te conseil de mettre la requete sql dans une variable et de l'afficher pour la tester avec un client SQL voir ce que cela donne.

parce que la, sauf si la donnée n'est pas dans la colonne nature il n'y as pas de raison qu'un simple sélect ne retourne pas d'info si elle existe dans la base.


@+

Re: PB d'espace blanc dans un sélect

Posté : 08 oct. 2013, 17:22
par niuxe
Salut,

As tu essayé de taper la requête dans un terminal ? Est ce que tu obtiens la même chose ?

perso, j'aurai tendance à écrire comme ceci :
$sql = "SELECT * FROM routage WHERE routage.nature ='$letri'"; //guillemets simples