Requête SQL avec GET_ via PDO

Fermé
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - 2 juil. 2014 à 11:04
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017 - 2 juil. 2014 à 11:56
Coucou, ça fait plaisir de vous retrouver pour vous partager, une nouvelle fois une petite chose que je n'arrive pas à faire fonctionner !

L'objectif, initier des recherches SQL avec une variable url GET à partir d'une map, (qui à l'occurrence est une carte de France).
J'aimerais afficher des sociétés correspondants à un département, sur une même page (si possible).

<li id="text-3" class="widget-container widget_text"><h3 class="widget-title">Recherches par départements</h3>     <div class="textwidget"><br />
  <map name="carte_departementale" id="carte_departementale">
        <area shape="poly" coords="126,38,125,50,145,53,145,48,147,40,137,42" href="/admin?critere=60&pays=France" alt="Oise" title="Oise" >
        <area shape="poly"  coords="164,28,149,28,150,23,146,16,141,11,135,11,132,3,137,2,142,10,148,10,151,17,157,18,158,22,164,22" href="/admin?critere=59&pays=France" alt="Nord" title="Nord" >
        <area shape="poly" coords="145,27,136,23,126,20,122,18,123,7,131,4,135,11,137,14,142,14,142,17,145,17" href="/admin?critere=62&pays=France" alt="Pas-de-Calais" title="Pas-de-Calais" >

//*..etc...*//
<?php $critere = $_GET['critere']; ?>
 </map>
  <img name="carte_departementale" id="carte_departementale" src="images/carte.png" usemap="#carte_departementale" alt="Carte cliquable" title="Carte cliquable" height="259" width="281">



<?php
    try { 
      $base = new PDO('mysql:host=localhost; dbname=iplanet', 'root'. '');
      }
      catch(exception $e)  {
      die ('Erreur '.$e->getMessage());
      }
      $base->exec("SET CHARACTER SET utf8");
      $retour = $base ->query('SELECT id_societe, nom_societe, adr, adr2, cp, ville, tel, fax, mail FROM societe WHERE cp LIKE "'.$critere%.'"');
      echo "<table border=1><caption>Gestion des societes </caption>";
      ?>
<thead>
             <tr>
                <th> ID </th>
                <th>Nom</th>  
                <th>Adr</th>
                <th>Adr2</th>
                <th>CP</th>
                <th>Ville</th>
                <th>Tel</th>
                <th>Fax</th>
                <th>Mail</th>
              <!--<th><a onclick="popupas();"><img src="images/icoajout.png"></a></th>
              <th><a onclick="popuprs();"><img src="images/icorechercher.png"></a></th>-->
            </tr>
            </thead>
      <?php
      while ($data = $retour ->fetch()) {
      echo "<tr><td>".$data['id_societe']."</td>";
      echo "<td>".$data['nom_societe']."</td>";
      echo "<td>".$data['adr']."</td>";
      echo "<td>".$data['adr2']."</td>";
      echo "<td>".$data['cp']."</td>";
      echo "<td>".$data['ville']."</td>";
      echo "<td>".$data['tel']."</td>";
      echo "<td>".$data['fax']."</td>";
      echo "<td>".$data['mail']."</td>";
      ?>
       <td><a onclick="popupms(<?php echo $data['id_societe']; ?>);"><img src="images/icomodifier.png"></a> </td>
       <td><a onclick="popupss(<?php echo $data['id_societe']; ?>);"><img src="images/icosupprimer.png"></a> </td></tr>
      <?php
      }
      echo "</table>";
      $base = null;
      ?> 


Erreur listé :
Undefined Index pour la ligne suivante : <?php $critere = $_GET['critere']; ?>

Le procédé est mauvais, ou il y a une erreur de syntaxe ?

Merci pour votre aide,
A voir également:

1 réponse

Uhm j'imagine que le premier extrait est la page admin.php non ?
Si c'est le cas alors
if(isset($_GET['critere'])){

    $critere = $_GET['critere'];

}

Devrai régler ton problème.
1
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
Modifié par Fontainard le 2/07/2014 à 11:42
Ah oui merci, c'est ça.donc, bon bah ça fonctionne... par contre petite erreur de syntaxe apparemment dans ma requête : $retour = $base ->query('SELECT id_societe, nom_societe, adr, adr2, cp, ville, tel, fax, mail FROM societe WHERE cp LIKE "'.$critere%.'"'); Qui est la syntaxe en équation avec mes autres requêtes et tout mon code de la page admin.php.

j'ai mis ça à la place : "SELECT id_societe, nom_societe, adr, adr2, cp, ville, tel, fax, mail FROM societe WHERE cp LIKE '$critere%'" mais du coup il reconnait plus à nouveau la variable critère et me fait des erreurs de syntaxe sur tout le reste de mon code.

Vous auriez une alternative sous la main ?
0
Euhm, alors, il y a une chose basique en prog, si tu as besoin de mettre une chose dans la chaine, il faut la mettre "dans" la chaîne.

LIKE "'.$critere.'%";);

Si je ne me trompe pas. Si c'est le cas c'est une erreur basique que tu ne devrais pas avoir à demander d'aide pour, dans de cas là sors un peu de changer les idées et reviens avec la tête fraiche.
0
Fontainard Messages postés 68 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 24 janvier 2017
2 juil. 2014 à 11:56
Sublime text me coloriait les choses bien joliment alors je ne faisais pas attention. J'ai modifier à ta manière, mais le soucis soucis provient du coup avec la suite de mon code :

Parse error: syntax error, unexpected '"'); ' (T_CONSTANT_ENCAPSED_STRING) in C:\wamp\www\administration\admin.php on line 233

Bon, c'est la pause MacDo, je m'y penche tout à l'heure. Merci pour ton aide bichette.^^
0