Fonction SELECT de MySQL, les champs
Résolu/Fermé
Halifax45
Messages postés
5
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
-
14 mai 2009 à 16:49
le père - 20 mai 2009 à 15:01
le père - 20 mai 2009 à 15:01
A voir également:
- Fonction SELECT de MySQL, les champs
- Fonction si et - Guide
- Mysql community server - Télécharger - Bases de données
- Fonction moyenne excel - Guide
- Durée de fonctionnement processeur ✓ - Forum Windows 10
- Fonction filtre excel n'existe pas - Forum Excel
8 réponses
BiiGiX
Messages postés
16
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
13 août 2010
2
14 mai 2009 à 17:02
14 mai 2009 à 17:02
Salut,
Voici peut-être une solution :
Voici peut-être une solution :
$variable = 'nom'; $sel = 'SELECT'.$variable.'FROM ma table'; $req = mysql_query($sel);
Halifax45
Messages postés
5
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
14 mai 2009 à 22:40
14 mai 2009 à 22:40
Et bien, j'avoue que vu mon niveau préhistorique en PHP et MySQL, je n'en sais rien. Mais je vais essayer et je reviens après le week end pour ce que ça dit, je n'aurai malheureusement pas trop le temps de tester d'ici là. En tout cas, merci pour la réponse rapide BiiGiX
Halifax45
Messages postés
5
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
18 mai 2009 à 22:27
18 mai 2009 à 22:27
Bonsoir à tous,
Merci pour vos interventions. Cela dit, apparemment SQL ne veut pas de cette solution pourtant sympa. La syntaxe par exemple "SELECT nom FROM final" en toutes lettres fonctionne évidement très bien mais le principe de remplacer l'ensemble (y compris les trémas) par une variable ne plaît pas. Si je fais un ECHO $sel; selon l'exemple donné par BiiGix, j'ai bien la même chose qui s'affiche qu'en toutes lettres mais SQL n'est pas d'accord.
Si donc quelqu'un a une idée...
Merci encore
Merci pour vos interventions. Cela dit, apparemment SQL ne veut pas de cette solution pourtant sympa. La syntaxe par exemple "SELECT nom FROM final" en toutes lettres fonctionne évidement très bien mais le principe de remplacer l'ensemble (y compris les trémas) par une variable ne plaît pas. Si je fais un ECHO $sel; selon l'exemple donné par BiiGix, j'ai bien la même chose qui s'affiche qu'en toutes lettres mais SQL n'est pas d'accord.
Si donc quelqu'un a une idée...
Merci encore
Bonjour
Si, si, SQL devrait être d'accord, il doit y avoir autre chose qui cloche. Peux-tu montrer ton code ?
SQL ne distingue pas une requête avec variables PHP d'une requête sans variables PHP parce que SQL ne voit JAMAIS les variables PHP, c'est le PHP qui les remplace par leurs valeurs avant de passer la requête à mySQL.
mySQl ne peut matériellement pas faire la différence entre :
mysql_query("SELECT nom FROM final");
et
$variable = "nom";
mysql_query("SELECT ".$variable." FROM final");
ou
$variable = "nom";
$req= "SELECT ".$variable." FROM final";
mysql_query($req);
Si, si, SQL devrait être d'accord, il doit y avoir autre chose qui cloche. Peux-tu montrer ton code ?
SQL ne distingue pas une requête avec variables PHP d'une requête sans variables PHP parce que SQL ne voit JAMAIS les variables PHP, c'est le PHP qui les remplace par leurs valeurs avant de passer la requête à mySQL.
mySQl ne peut matériellement pas faire la différence entre :
mysql_query("SELECT nom FROM final");
et
$variable = "nom";
mysql_query("SELECT ".$variable." FROM final");
ou
$variable = "nom";
$req= "SELECT ".$variable." FROM final";
mysql_query($req);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Halifax45
Messages postés
5
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
19 mai 2009 à 22:06
19 mai 2009 à 22:06
Bonsoir le père
Ah? Heureux de le savoir, cela me rassure.
Bon, j'ai pour l'instant une petite table de rien, pour test, que j'ai appelée "final" et venant d'un autre code HTML, la variable $mot1 contient par exemple le mot "bouteille"
Voici le bout de code qui fonctionne:
$req = mysql_query("SELECT bouteille FROM final");
?><br /><?php
while ($donnees = mysql_fetch_array($req) )
{
Echo $donnees[$mot1];?><br /><?php
}
et celui qui plante:
$sel = '"SELECT '.$mot1.' FROM final"'; echo $sel;
$req = mysql_query($sel);
?><br /><?php
while ($donnees = mysql_fetch_array($req) )
{
Echo $donnees[$mot1];?><br /><?php
}
Le message d'erreur est le suivant :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\aaDivers\db PHP\Test\table.php on line 52
Que dire de plus...
Ah? Heureux de le savoir, cela me rassure.
Bon, j'ai pour l'instant une petite table de rien, pour test, que j'ai appelée "final" et venant d'un autre code HTML, la variable $mot1 contient par exemple le mot "bouteille"
Voici le bout de code qui fonctionne:
$req = mysql_query("SELECT bouteille FROM final");
?><br /><?php
while ($donnees = mysql_fetch_array($req) )
{
Echo $donnees[$mot1];?><br /><?php
}
et celui qui plante:
$sel = '"SELECT '.$mot1.' FROM final"'; echo $sel;
$req = mysql_query($sel);
?><br /><?php
while ($donnees = mysql_fetch_array($req) )
{
Echo $donnees[$mot1];?><br /><?php
}
Le message d'erreur est le suivant :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\aaDivers\db PHP\Test\table.php on line 52
Que dire de plus...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 mai 2009 à 22:54
19 mai 2009 à 22:54
Normal tu as mis des ' en trop dans ta $sel
il faut:
il faut:
$sel = "SELECT ".$mot1." FROM final"; ou $sel = "SELECT $mot1 FROM final";
Halifax45
Messages postés
5
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
20 mai 2009 à 14:46
20 mai 2009 à 14:46
Bonjour Alain_42,
C'est parfait. Tant qu'à faire, la deuxième option est ma préférée, c'est tout propre comme code. Après coup, ça paraît évident mais bon. Problème résolu en tout cas, je vais pouvoir avancer.
Un grand merci, également aux autres membres qui m'ont répondu auparavent
Halifax
C'est parfait. Tant qu'à faire, la deuxième option est ma préférée, c'est tout propre comme code. Après coup, ça paraît évident mais bon. Problème résolu en tout cas, je vais pouvoir avancer.
Un grand merci, également aux autres membres qui m'ont répondu auparavent
Halifax
14 mai 2009 à 22:45
Sinon le code SQL généré seradu genre
SELECTchampFROM matable