PHP like

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??

5 réponses

  1. Salut,

    Dans ton formulaire html, quelle est la valeur (attribut value) de ton input/option pour l'école 'ITII Lyon' ?
    0
    1. <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
      1. 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
        1. 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
        2. J'ai essayé, cela ne marche pas.
          0
        3. 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
      2. 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
        1. 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
        2. 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
        3. Essaye d'exécuter directement ta requête de $reqDipl en SQL (avec PhpMyAdmin par exemple) pour contrôler les résultats.
          0
        4. Comment je fais ca?
          0
      3. 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