Problème de syntaxe et de reconnaissance entre une variable fixe puis une variab

fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006 - 21 sept. 2005 à 18:16
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 - 21 sept. 2005 à 20:09
Bonjour, je m'explique car le titre n'est pas très clair mais bon ...

Alors voila lorsque j'execute un script avec des nom de variable d'une table ceal marche en revanche lorsqu'il s'agit de variable provenant d'une liste déroulante (donc variable selon le choix) ça ne marche plus.
Voici donc mon script en dur :

$tab = array();
$listenafg36 = array();
$listeepci = array();

$query = mysql_query('SELECT DISTINCT nafg36, epci, SUM(efet) as somme FROM sirene_petit GROUP BY nafg36, epci ORDER BY nafg36, epci');
while($row = mysql_fetch_assoc($query)) {
$listenafg36[$row['nafg36']] = $row['nafg36'];
$listeepci[$row['epci']] = $row['epci'];
$tab[$row['epci']][$row['nafg36']] = $row['somme'];
}

<HR>




Et voici mon script recherchant selon les paramètre sélectionné dans les listes déroulantes :

$tab = array();
$listeparam1 = array();
$listeparam2 = array();
$param1=$_POST['param1'];
$param2=$_POST['param2'];
$param3=$_POST['param3'];
echo $param1;
echo $param2;
echo $param3;

$query = mysql_query('SELECT DISTINCT $param1, $param2, SUM($param3) as somme FROM sirene_petit GROUP BY $param1, $param2
ORDER BY $param1, $param2');
while($row = mysql_fetch_assoc($query)) {
$listeparam1[$row['$param1']] = $row['$param1'];
$listeparam2[$row[$'param2']] = $row['$param2'];
$tab[$row['$param2']][$row['$param1']] = $row['somme'];
}

Si quelqu'un à la réponse merci et aussi pourquoi comme ça je comprais la raison!!

Merci

2 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
21 sept. 2005 à 20:06
$listeparam1[$row['$param1']] = $row['$param1'];
$listeparam2[$row[$'param2']] = $row['$param2'];
$tab[$row['$param2']][$row['$param1']] = $row['somme'];



C'est du n'importe quoi ce que tu nous as fait... Il devrait même y
avoir des erreurs de syntaxe ou des warnings : connais pas l'index
'$param1' dans $row!!




Essaye ça:

$listeparam1[$row[$param1]] = $row[$param1];
$listeparam2[$row[$param2]] = $row[$param2];
$tab[$row[$param2]][$row[$param1]] = $row['somme'];





PS : C'est quoi une variable varialble ?

<?php


// une variable variable c'est ça !!!!!!!!!!


$a = '32';

$b = 'a';

echo $$b; // => 32



// et t'en qu'on y est je te présente la fonction variable

function pouet($var) {

return $var*2;

}

$a = 'pouet';

echo $a(16); // => 32

?>
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
21 sept. 2005 à 20:09
Salut !



je vois une erreur flagrate qui fait que, en tout cas, ça peut pas marcher:



tu ecris:

$query = mysql_query('SELECT DISTINCT $param1, $param2, SUM($param3) as somme FROM sirene_petit GROUP BY $param1, $param2
ORDER BY $param1, $param2');



ta requete sql est entre simple quote : ' select...'

or dans les simples quotes, les variables ne sont pas interprétées/ du
coup $param1 va rester $param1 et non la valeur de param1/

2 solutions possible donc:

la premiere (moyen propre)


$query = mysql_query("SELECT DISTINCT $param1, $param2, SUM($param3) as somme FROM sirene_petit GROUP BY $param1, $param2
ORDER BY $param1, $param2");



la seconde (propre):


$query = mysql_query('SELECT DISTINCT '.$param1.',
'.
$param2
.'
, SUM(
'.
$param3
.'
) as somme FROM sirene_petit GROUP BY
'.
$param1
.'
,
'.
$param2
.'

ORDER BY
'.
$param1,
'.
$param2
);



avec ça , ta requete sera bien écrite..maintenant, à toi de voir si les valeurs des $param_i sont bonnes ;)






-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
Rejoignez-nous