Variables php dans un SELECT

Résolu/Fermé
SanDoKa - 19 mars 2008 à 21:15
 SanDoKa - 20 mars 2008 à 00:28
Bonjour à tous,


Voila j'ai un soucis, j'ai consulté le forum et trouvé des post mais il ne m'aident pas forcement.
J'aimerais utiliser un SELECT avec des variables PHP ou des varibles de type POST ou GET , mais il n'en veux absolument pas :s

Voila le morceau de code sans utiliser de variables:

$r3=mysql_query("SELECT Solo FROM Compta_Captures_Caserne WHERE Capture='TEST' ");
$r33=mysql_result($r3,"Solo");

Celui ci fonctionne à merveille et me revoie la valeur que je souhaite mais ça ne m'interesse pas j'aimerais plutot faire ceci:

$r3=mysql_query("SELECT $_GET[Formation] FROM Compta_Captures_Caserne WHERE Capture=$_GET[Capture] ");
$r33=mysql_result($r3,$_GET[Formation]);

Et la ça coince. ça fait tellement d'heure que je suis dessus que je ne sais pas si j'ai arrété le code dans la meilleure posture , mais avant de devenir fou , je me suis dit qu'une ame charitable pourrait me remettre dans le droit chemin...

Si l'utilisation directe d'une variable de type GET n'est pas possible je veux bien qu'on me montre avec une variable intermediaire, enfin une solution snif :x

D'avance un enorme merci à tous ceus qui se pencheront sur mon cas (^_^)

SanDoKa

PS : si ce n'est pas possible je suis mal car les langages de programmations de sont pas du tout mon fort et j'aurais besoin de ce code rapidement :x

4 réponses

sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
19 mars 2008 à 21:25
C'est tout simple, tu fais :
$cequetuveux=$_GET[Formation];
$r3=mysql_query("SELECT $cequetuveux] FROM Compta_Captures_Caserne WHERE Capture='$cequetuveux' ");
$r33=mysql_result($r3,$cequetuveux); 
Et tu rajoutes un htmlspecialchars pour protéger le tout
0
Voici ce que ça me donne :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
19 mars 2008 à 21:28
oups, je crois que j'ai mélangé 2 variables
CORRECTION :
$cequetuveux=$_GET[Formation];
$ceqetuveuxbis=$_GET[Capture];
$r3=mysql_query("SELECT $cequetuveux] FROM Compta_Captures_Caserne WHERE Capture='$cequetuveuxbis' ");
$r33=mysql_result($r3,$cequetuveux); 
0
Oui j'avais corrigé l'erreur neanmoins il me retourne quand meme cette erreur :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource
0
sly-bzh Messages postés 415 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 5 décembre 2009 118
19 mars 2008 à 21:37
C'est parceque la fonction mysql_result ne s'utilise pas comme ça. Je l'avais pas vu, excuse moi.
Cette fonction s'utilise ainsi : PHP - Fonction mysql_result()
En fait tu dois mettre un chiffre entre $r3 et $cequetuveux, qui correspond au numéro d'enregistrement dans la table que tu souhaites afficher, en prenant bien en compte que le 0 correspond au premier
0
Ok d'accord ça m'es venu en tete qu'on ne pouvait utiliser que des variables de type numerique mais je n'avais pas trouver de details suffisaments probants pour m'en assurer :(

Merci à toi pour ton acharnement :p

Cordialement

SanDoKa
0
J'ai donc fait les changements malheuresement ça ne marche toujours pas.

Voici les listes Déroulantes :

Capture<br><select name="Capture" >
<?
$requete=mysql_query("SELECT ID,Capture FROM Compta_Captures_Caserne ORDER BY ID ASC");
$nombrelignes = mysql_numrows($requete);
for ($i=0;$i<$nombrelignes;$i++)
{
$nom = mysql_result($requete,$i,"ID");
$nom2 = mysql_result($requete,$i,"Capture");
echo "<option value=$nom> $nom2 </option>";
}
?>
</select>

<br>Type de Formation<br>

<select name="Formation" >
<option value="1">Solo</option>
<option value="2">Duo</option>
<option value="4">EQ4</option>
<option value="6">EQ6</option>
<option value="8">EQ8</option>
</select>

Voici le morceau de code utile :

$rx=$_GET[Formation]; / Renvoi donc la valeur 1,2,4,6 ou 8
$ry=$_GET[Capture]; / Revoi donc le numero de ligne de la Table ( compris entre 0 et 69 )

$r3=mysql_query("SELECT $rx FROM Compta_Captures_Caserne WHERE ID='$ry' "); // Ligne 173
$r33=mysql_result($r3,$ry,$rx); // Ligne 174
$r4=mysql_query("SELECT Prime FROM Compta_Captures_Caserne WHERE ID='$ry' "); // Ligne 175
$r44=mysql_result($r4,$ry,"Prime"); // Ligne 176

Voici un avertissement au chargement de la page :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource [..] on line 174

Voici les erreurs aprés validation du formulaire ( Si je choisis une autre ligne que la ligne 0 , ici la ligne 6 ):

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 6 on MySQL result index 12 [..] on line 174

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 6 on MySQL result index 13 [..] on line 176

Helppppppppppppppppp :xx

Merci d'avance pour le coup de main :)

Cordialement,

SanDoKa
0