Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1237 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] isset qui veut pas marché :(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] isset qui veut pas marché :(

n°1275326
clam8692
Posté le 31-12-2005 à 15:13:24  profilanswer
 

Bonjour, j'ai un ptit souci avec mon code de recherche multi-critères, et je voit pas d'ou ça peut venir. Pourtant le code est très simple, j'ai un formulaire:  

Citation :


<form action="resultatrecherche.php" method="post" >
      nom de l'adherent
      <input type="text" name = "nom" /><br />
      prenom
      <input type="text" name = "prenom" /><br />
      le login IUT
      <input type="text" name = "logiut" /><br />
      l'adresse email
      <input type="text" name = "mail" /><br />
      <input type="submit" value="envoyer" />
</form>


 
et puis ma page resultatrecherche.php avec le code suivant:

Citation :


 <?php
           $sql = "SELECT numAdherent FROM `adherent` WHERE ";
           $i = 0;
           if(isset($_POST['nom']))
           {
               $sql.= "`NomAdherent` = '".$_POST['nom']."'";
               $i++;
           }
           if(isset($_POST['prenom']))
           {
               if($i !=0)
                     $sql.= " AND `PrenomAdherent` = '".$_POST['prenom']."'";
               else
               {
                     $sql.= "`PrenomAdherent` = '".$_POST['prenom']."'";
                     $i++;
               }
           }
           if(isset($_POST['logiut']))
           {
               if($i !=0)
                     $sql.= " AND `LoginEtudAdherent` = '".$_POST['logiut']."'";
               else
               {
                     $sql.= "`LoginEtudAdherent` = '".$_POST['logiut']."'";
                     $i++;
               }
           }
           if(isset($_POST['mail']))
           {
               if($i !=0)
                     $sql.= " AND `emailAdherent ` = '".$_POST['mail']."'";
               else
               {
                     $sql.= "`emailAdherent ` = '".$_POST['mail']."'";
                     $i++;
               }
           }
           $sql.= ";";
           echo $sql;
      ?>


 
Le souci c'est que les isset ne sont pas pris en compte et je me retrouve donc avec des requêtes du style :

Citation :


SELECT numAdherent FROM `adherent` WHERE `NomAdherent` = 'pit' AND `PrenomAdherent` = '' AND `LoginEtudAdherent` = 'log' AND `emailAdherent ` = '';  


Pas terrible pour rechercher :s
 
Si qqn peut me donner un ti coup d'pouce :D
Merci bien.


Message édité par clam8692 le 31-12-2005 à 16:10:00
mood
Publicité
Posté le 31-12-2005 à 15:13:24  profilanswer
 

n°1275328
zapan666
Tout est relatif
Posté le 31-12-2005 à 15:16:45  profilanswer
 

les variables sont affectés mais elles sont vides.
 
Utilise empty pour savoir si elles sont vides ou pas


---------------
my flick r - Just Tab it !
n°1275331
clam8692
Posté le 31-12-2005 à 15:18:12  profilanswer
 

oki je test sa :)
Ouaip sa marche. J'avoue j'ai été un peu couillon sur s'coup la, mais ça fait perpette que j'ai pas touché au php :P
Bon réveillon et bonne année !!


Message édité par clam8692 le 31-12-2005 à 15:20:21
n°1275769
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-01-2006 à 11:08:11  profilanswer
 

Par ailleurs je pense que tu pourrais alléger ton code en faisant ça :
 


 <?php
           $sql = "SELECT numAdherent FROM `adherent` WHERE ";
           $i = 0;
           if(isset($_POST['nom']))
           {
               $sql.= "`NomAdherent` = '".$_POST['nom']."'";
               $i=1;
           }
           if(isset($_POST['prenom']))
           {
               if($i == 1) {
                     $sql.= " AND ";
               }
               $sql.= "`PrenomAdherent` = '".$_POST['prenom']."'";
               $i=1;
            }
           if(isset($_POST['logiut']))
           {
               if($i == 1) {
                     $sql.= " AND ";
               }
               $sql.= "`LoginEtudAdherent` = '".$_POST['logiut']."'";
               $i=1;
           }
           if(isset($_POST['mail']))
           {
               if($i == 1) {
                     $sql.= " AND ";
               }
               $sql.= "`emailAdherent ` = '".$_POST['mail']."'";
               $i=1;
           }
           $sql.= ";";
           echo $sql;
      ?>


 
Maintenant je te conseillerais même autre chose, que je vais te soumettre dans un nouveau post le temps de le coder :D
 
Edit : Au fait, il ne faut pas utiliser isset tout seul, mais empty aussi, car tes valeurs seront passée même si elles sont vides.


Message édité par Dj YeLL le 02-01-2006 à 11:09:53

---------------
Gamertag: CoteBlack YeLL
n°1275770
Dj YeLL
$question = $to_be || !$to_be;
Posté le 02-01-2006 à 11:15:01  profilanswer
 

Voilà :
 

<?php
           $whereList = array();
           if(!empty(trim($_POST['nom']))) {
               $whereList[] = "`NomAdherent` = '".$_POST['nom']."'";
           }
           if(!empty(trim($_POST['prenom']))) {
               $whereList[] = "`PrenomAdherent` = '".$_POST['prenom']."'";
           }
           if(!empty(trim($_POST['logiut']))) {
               $whereList[] = "`LoginEtudAdherent` = '".$_POST['logiut']."'";
           }
           if(!empty(trim($_POST['mail']))) {
               $whereList = "`emailAdherent ` = '".$_POST['mail']."'";
           }
           $where = implode(' AND ',$whereList);
           $sql = 'SELECT numAdherent FROM `adherent` WHERE ' . $where;
?>


 
Je l'ai fais de tête donc à vérifier si je n'ai pas fais d'erreur.


---------------
Gamertag: CoteBlack YeLL
n°1277528
clam8692
Posté le 05-01-2006 à 12:44:49  profilanswer
 

Ok merci beaucoup :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] isset qui veut pas marché :(

 

Sujets relatifs
[Résolu]classe mutable/immutable..[Résolu]Interface marqueur
Resolu [VBA][EXCEL] GetExternalData sous Excel97[resolu]Ma fonction de calcul des fps est-elle bonne ?
Problème sur un exo de C [RESOLU][Resolu] DataGrid colonne actuelle
[ RESOLU ] Effacer des fichiers PDF qui ont plus d'une heure[Resolu]Erreur à la fermeture de la balise HTML
[Résolu] Probleme de mise en page[C] problème de réallocation de la taille d'une chaine [résolu]
Plus de sujets relatifs à : [Résolu] isset qui veut pas marché :(


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR