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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Requete et SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Requete et SQL

n°1534455
lilougirl8
Posté le 27-03-2007 à 17:17:19  profilanswer
 

Bonjour,  
 
Voila j'ai un petit problème...
J'ai donc une BDD d'annonces où je souhaite selectionner des dynamquement selon certain critère (grace a WHERE, Mais je suis confronter a un problème je n'arrive pas a faire ce que je veux faire...
Idéalement il faudrai que j'incrémente le nom de la variable....mais ça fait bricolage ... le mieu c'est de vous poster un bou de code :  
Donc voila la requete pour chercher ce que je veux...

Code :
  1. $annonce = mysql_query("SELECT * FROM xxxxxx WHERE (type_affaire='".$type1."' OR type_affaire='".$type2."') AND (type_affaire='".$type1."' OR type_affaire='".$type2."') AND (type_bien='".$typebien1."' OR type_bien='".$typebien2."' OR type_bien='".$typebien3."' OR type_bien='".$typebien4."' OR type_bien='".$typebien5."' OR type_bien='".$typebien6."')    ORDER BY $tri LIMIT $limite, $nb_annonce" ) or die("Erreur : Problème avec la requete annonce" );


 
et ça c'est le bout de code qui me permet générer les variable "dynamiquement"... j'ai l'impression d'une part que c'est super lourd.. et je ne c pas si je peux eviter ça... mai aussi je bloque au niveau de la boucle pour nommé la variable... J'ai essayer avec un tableau, effectivement ça marchait mais j'avai un probleme de undefinited offset ds la requete SQL ...ce qui est normal puisque que si je n'avai qu'un variable (correspondant donc a une ligne de tableau) il ne trouvai pas les autres qui n'existe pas d'ou l'errreur  
 

Code :
  1. if(!empty($_GET['type_bien'])) {
  2. $requetebien = $_GET['type_bien'];
  3.  $typebien1 = "";
  4.  $typebien2 = "";
  5.  $typebien3 = "";
  6.  $typebien4 = "";
  7.  $typebien5 = "";
  8.  $typebien6 = "";
  9. $typebien = explode(",",$requetebien);
  10. if(!empty($typebien)) {
  11.  foreach($typebien as $key => $value) {
  12.    $typebien = $value; ICI IL FAUDRAI QUE JE FAUDRAIT QUE LE NOM SE GENERE AUTOMATIQUEMENT
  13.  }
  14. }
  15. else {
  16.  $requetebien="";
  17.  $typebien="";
  18.  $typebien1 = "Villa";
  19.  $typebien2 = "Maison de village";
  20.  $typebien3 = "Appartement";
  21.  $typebien4 = "Terrain";
  22.  $typebien5 = "Cabanon";
  23.  $typebien6 = "Commerce";
  24. }
  25. }
  26. else {
  27. $typebien1 = "Villa";
  28. $typebien2 = "Maison de village";
  29. $typebien3 = "Appartement";
  30. $typebien4 = "Terrain";
  31. $typebien5 = "Cabanon";
  32. $typebien6 = "Commerce";
  33. }


 
 
 
Merci e m'aider  :)


Message édité par lilougirl8 le 27-03-2007 à 17:18:26
mood
Publicité
Posté le 27-03-2007 à 17:17:19  profilanswer
 

n°1534496
NewsletTux
<Insérez ici votre vie />
Posté le 27-03-2007 à 17:43:30  profilanswer
 

renseigne-toi sur l'injection SQL, j'en vois une belle.
 
Tes types de biens sont fixes ?

n°1534507
soju
One shot !
Posté le 27-03-2007 à 17:48:33  profilanswer
 

pas le temps de tout lire mais :
1) pourquoi deux fois ?

(type_affaire='".$type1."' OR type_affaire='".$type2."') AND (type_affaire='".$type1."' OR type_affaire='".$type2."')


 
2) au lieu de faire plein de OR, tu peux utiliser IN

n°1534512
lilougirl8
Posté le 27-03-2007 à 17:54:32  profilanswer
 

Soju => Oui effectivement je vais deja faire ça ça sera moins lourd, je débute donc je ne connais pas a fond la syntaxe...
 
Newslettux => a mon avis j'en ai de partout mais je créer d'abord tout ensuite je me pencherai sur la sécurité... mai je veux d'abord que tout marche comme je le souhaite... tu peux me montrer  a quoi tu le vois?
 
 
EDIT : Hop voila c mieux??
 

Code :
  1. $annonce = mysql_query("SELECT * FROM xxx WHERE (type_affaire='".$type1."' OR type_affaire='".$type2."') AND (type_affaire='".$type1."' OR type_affaire='".$type2."') AND (type_bien IN ('".$typebien1."','".$typebien2."','".$typebien3."','".$typebien4."','".$typebien5."','".$typebien6."'))    ORDER BY $tri LIMIT $limite, $nb_annonce" ) or die("Erreur : Problème avec la requete annonce" );


Message édité par lilougirl8 le 27-03-2007 à 18:00:37
n°1534519
nemohp
Adepte du provisoire permanent
Posté le 27-03-2007 à 17:59:46  profilanswer
 

je comprends que tu veuilles t'occuper de la sécurité qu'apres.  
Mais c'est souvent mieux de la prendre en compte dès le debut du projet, sinon apres ça passe bien trop souvent à la trappe...
 
par exemple, si tu es sur un serveur php 5.1>=, utilise plutot PDO et les prepare-statement


Message édité par nemohp le 27-03-2007 à 18:00:07
n°1534523
lilougirl8
Posté le 27-03-2007 à 18:03:28  profilanswer
 

J'ai oublier de préciser mes type de bien sont fixes... il ne changerons pas il y en a que 6

n°1534544
lilougirl8
Posté le 27-03-2007 à 18:52:03  profilanswer
 

Bon après de longue recherche sur le net... apparament je suis parvenue à ça.. ça a ll'air de fonctionner... pourriez vous quend meme me donner votre avis?
 
 

Code :
  1. if(!empty($typebien)) {
  2.  $i=1;
  3.  foreach($typebien as $key => $value) {
  4.    ${"typebien".$i} = $value;
  5.    $i++;
  6.  }
  7. }

n°1534585
lilougirl8
Posté le 27-03-2007 à 21:26:10  profilanswer
 

petit up please..
 
EDIT A quoi voit tu qu'il y a une faille?


Message édité par lilougirl8 le 28-03-2007 à 13:31:14
n°1573168
Yertle
Posté le 11-06-2007 à 12:28:46  profilanswer
 

j'ai pas testé ton ptit bout de script, mais moi j'aurais fait comme ça (c'est assez similaire en somme...)
 

Code :
  1. if(!empty($typebien)) {
  2. $i=1;
  3. foreach($typebien as $key => $value) {
  4. $name= '$typebien'.$i; //les simple quotes permettent de ne pas interpréter $typebien, et donc de l'utiliser comme du texte
  5. $$name= $value;
  6. $i++;
  7. }   
  8. }


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

  [PHP] Requete et SQL

 

Sujets relatifs
[Résolu] Soucis avec une requête SQL dans une page PHPProblème de requête SQL - PHP - mysql
[PHP] Array dans une requète SQLrequete multiple PHP SQL : besoin coup de main urgent
[PHP] Requête sql avec une variable[PHP/SQL] pb requete inter tables
probleme sur une requete SQL en phpPb de requete sql dans une page php.
[PHP-SQL] Requete SQL tous les jours à une ceraine sheure ?[PHP] SUBSTR dans une requête SQL?
Plus de sujets relatifs à : [PHP] Requete et SQL


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