PHP like

Papallon -  
 Utilisateur anonyme -
Bonjour,





Bonjour tout le monde!
J'ai un petit soucis, je vous explique, J'ai une liste déroulante avec des choix d'ecole ( c'est pour un site qui facilite les reherches d'écoles d'ingé tout ca ) mais le probléme c'est que certaines écoles s'appelent 'ITII Lyon'.

Ce qui fait que quand je compare ce que l'utilisateur rentre à la base de donnée cela ne fonctionne que pour les écore en 1 mot.

$req = $bdd->prepare('SELECT diplomes.formation , etablissements.ville , formations.type , etablissements.pays , etablissements.abbrEtab , diplomes.nomDp , etablissements.telEt , formations.dateDossier , etablissements.siteWeb , diplomes.desc
FROM diplomes, etablissements, formations
WHERE diplomes.id_NumDipl = formations.id_NumDipl AND formations.id_NumEtab = etablissements.id_NumEtab
AND type = :type2 AND pays = :pays2 AND nomDp = :nomDp
');

$req->execute(array(
'type2' => $_POST['type2'],
'pays2' => $_POST['pays2'],
'nomDp' => $_POST['nomDp'],
));
echo '<pre>';
print_r($_POST['nomDp']);
echo '</pre>';

Mon print_r c'est por savoir ce qui ressort.
Et ce qui ressort c'est juste le premier mot, du coup, pour 'ITII Lyon' j'ai 'ITII'

Vous avez une idée??
A voir également:

5 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Dans ton formulaire html, quelle est la valeur (attribut value) de ton input/option pour l'école 'ITII Lyon' ?
0
Papallon
 
<p>
<label for=ville>Choisissez parmis les diplômes proposés celui qui vous intèrèsse :</label>
<select name="nomDp" id="nomDp">
<?php
while($donnees = $reqDipl->fetch())
{
?>
<option value=<?php echo $donnees['nomDp']; ?>> <!-- Attribut la valeur de $donnees en cour -->
<?php echo $donnees['nomDp']; ?> <!-- à l'affichage de $donnees-->
</option>
<?php
}
$reqDipl->closeCursor();
?>
</select>
</p>
0
Utilisateur anonyme
 
Bonjour

Quand la "value" contient des espaces, il faut l'entourer de double quotes. Et comme tu ne sais pas a priori s'il va y en avoir, autant toujours mettre les doubles quotes :
<option value="<?php echo $donnees['nomDp']; ?>"> <!-- Attribut la valeur de $donnees en cour --> 
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
Bonsoir,

Du même avis. C'est bien les valeurs entre "

En HTML la balise OPTIOn a comme attribut VALUE

et en HTML TOUS LES ATTRIBUTS sont entre "

Exemple mauvais:
.... value=toto à sa maman

Exemple bon:
.... value="toto à sa maman"

Cherchez pas plus loin!!!!

A+
0
Papallon
 
J'ai essayé, cela ne marche pas.
0
Papallon
 
Voici mon nouveau code :

<select name="nomDp" id="nomDp">
<?php
while($donnees = $reqDipl->fetch())
{
?>
<option value="<?php echo $donnees['nomDp']; ?>"> <!-- Attribut la valeur de $donnees en cour -->
"<?php echo $donnees['nomDp']; ?>" <!-- à l'affichage de $donnees-->
</option>
<?php
}
$reqDipl->closeCursor();
?>
</select>
0
Papallon
 
Arf! J'y ai vraimet cru!

Mais cela ne marche pas...

Rien ne change, j'ai toujours 'ITII' à la sortie de mon print_r et le comparaison ne fonctionne pas.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
La valeur dépend de l'attribut value de la balise option.

Puisque apparemment tu remplis tes balises option avec les données contenus dans ta base de données, modifie cette valeur dans la base de données.
0
Papallon
 
C'est bien ca mon probléme!
Dans ma base de donnée, la valeur est "ITII Lyon" et je me retrouve avec "ITII"
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Essaye d'exécuter directement ta requête de $reqDipl en SQL (avec PhpMyAdmin par exemple) pour contrôler les résultats.
0
Papallon
 
Comment je fais ca?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
As-tu essayé de voir le code source HTML de ta page (Ctrl-U) pour vérifier ce qu'il y avait réellement dans le SELECT envoyé au visiteur ?
0