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

  FORUM HardWare.fr
  Programmation
  PHP

  Comment inclure une variable dans une requête SQL ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment inclure une variable dans une requête SQL ?

n°1171670
Docteur G
Momo Motus
Posté le 07-08-2005 à 14:31:06  profilanswer
 

Salut,
Je viens d'oublier un truc con comme mes pieds... J'ai un requête SQL et j'aimerais inclure une variable à l'intérieur. La voici :
$req="SELECT * FROM basex where num='$num'";
A l'endroit ou le x est en gras, j'aimerais le remplacer par la variable $base, qui donne le nom de la base. Par exemple, si $base=test;, alors la requête en echo serait donc  
$req="SELECT * FROM basetest where num='$num'";.
 
Vous comprenez ?
 
Merci :)
 
a+
Greg.

mood
Publicité
Posté le 07-08-2005 à 14:31:06  profilanswer
 

n°1171674
gatsusat
Posté le 07-08-2005 à 14:33:12  profilanswer
 

c'est pas la base que tu attaqueras dans ta requete mais une table d'une base précise.

n°1171680
ritzle
Posté le 07-08-2005 à 14:37:28  profilanswer
 

et la solution n'a rien à voir avec du SQL, c'est du PHP pur

n°1171684
Docteur G
Momo Motus
Posté le 07-08-2005 à 14:41:11  profilanswer
 

gatsusat a écrit :

c'est pas la base que tu attaqueras dans ta requete mais une table d'une base précise.


Oui je sais, je me suis un peu emmeler les pinceaux, désolé :)
 
Et je sais que la solution est en PHP (c'est pour ca que j'ai posté dans ce sous-forum), je donne l'exemple de la requête SQL juste comme ca...
 
Décidement, vous avez un problème avec les exemples dans ce forum :D :lol:  
 
Pourriez vous me donner juste la solution svp ? Merci ;)


Message édité par Docteur G le 07-08-2005 à 14:41:50
n°1171686
gatsusat
Posté le 07-08-2005 à 14:43:35  profilanswer
 

$table="matable";, alors la requête en echo serait donc  
$req="SELECT * FROM $table where num='$num'";
 
ou enconcaténant les chaines :  
$req="SELECT * FROM ".$table. "where num='".$num."'";
 
je préfère la deuxième solution, je la trouve plus explicite, et me permet de metttre des calcule au milieu
exemple :  
 
$req="SELECT * FROM ".(($table=="truc" )? "machinbidule" : "bidulechouette" ). "where num='".$num."'";

n°1171694
Docteur G
Momo Motus
Posté le 07-08-2005 à 14:57:05  profilanswer
 

gatsusat a écrit :

$table="matable";, alors la requête en echo serait donc  
$req="SELECT * FROM $table where num='$num'";
 
ou enconcaténant les chaines :  
$req="SELECT * FROM ".$table. "where num='".$num."'";
 
je préfère la deuxième solution, je la trouve plus explicite, et me permet de metttre des calcule au milieu
exemple :  
 
$req="SELECT * FROM ".(($table=="truc" )? "machinbidule" : "bidulechouette" ). "where num='".$num."'";


 
Ok merci, mais j'ai une autre question, d'ordre plus général.
J'ai ca : $numerotable = $_GET['numerotable']; et j'aimerais "coller" le numéro en $_GET au nom de la table.  
Il me semble qu'il y a une histoire de "+" mais j'ai completement oublié.  
En gros, j'aimerais que la variable "$nomtable" soit "lenomdematable + $numerotable" collés.  
J'ai en effet dans ma base SQL des tables appelée par exemple lenomdematable1, lenomdematable2, lenomdematable3, lenomdematable4...
Donc, si on charge les variables ca donne ca :
si en $_GET, numerotable = 51 par exemple, alors $nomtable = lenomdematable51.
C'est dur à expliquer désolé :)

n°1171724
xtof_83
Freeride Spirit
Posté le 07-08-2005 à 16:08:44  profilanswer
 

en php le signe de concaténation est le point:   .
 
$var1="test";
$var2=" de merde";
$var3=$var1.$var2;
 
$var3 -> test de merde

n°1171746
Docteur G
Momo Motus
Posté le 07-08-2005 à 16:43:05  profilanswer
 

xtof_83 a écrit :

en php le signe de concaténation est le point:   .
 
$var1="test";
$var2=" de merde";
$var3=$var1.$var2;
 
$var3 -> test de merde


Merci beaucoup, tu me tires un fiere chandelle du pied :D :D :D

n°1171772
ritzle
Posté le 07-08-2005 à 17:46:40  profilanswer
 

tu peux aussi utiliser la virgule, je crois que c'est plus rapide

n°1171775
KangOl
Profil : pointeur
Posté le 07-08-2005 à 17:59:31  profilanswer
 

pas pour une concaténation ...


Message édité par KangOl le 07-08-2005 à 18:00:01

---------------
Nos estans firs di nosse pitite patreye...
mood
Publicité
Posté le 07-08-2005 à 17:59:31  profilanswer
 

n°1171778
xtof_83
Freeride Spirit
Posté le 07-08-2005 à 18:07:46  profilanswer
 

ritzle a écrit :

tu peux aussi utiliser la virgule, je crois que c'est plus rapide


 
Plus rapide...euh.. :pt1cable:  :pt1cable:

n°1173265
outdial
Posté le 09-08-2005 à 14:53:20  profilanswer
 

OK.
Alors supposons que tes tables vont de 1 à 42 :
 
tu fais :
 

Code :
  1. <?
  2. $numtable = intval($_GET['numtable']);
  3. // Deja, le intval est une bonne protection contre les injections de code
  4. if ($numtable < 1 OR $numtable > 42)
  5.    die('Une erreur s'est produite');
  6. // pas besoin de dire que la table machin n'existe pas...
  7. else $req = 'SELECT * FROM matable'. $numtable .'WHERE blabla';
  8. ?>


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

  Comment inclure une variable dans une requête SQL ?

 

Sujets relatifs
Requete avec 2 champs identiques sur une table[RESOLU] Récupérer résultat d'1 requête SQL dans 1 script bourne shell
Requete et phpRequête sql ?!?
[MySQL]pb requete[Resolu][SQL SERVER] Convertion de seconde au format hh:mm:ss
[SQL SERVER] Convertion de seconde au format hh:mm:ss[SGBD/SQL] - MYSQL - champ datetime et now() par defaut
Qu'est ce qui cloche dans ma requête SQL? 
Plus de sujets relatifs à : Comment inclure une variable dans une requête SQL ?


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