cs_27
Messages postés66Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention16 juillet 2007
-
11 juil. 2006 à 09:44
cs_27
Messages postés66Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention16 juillet 2007
-
11 juil. 2006 à 12:04
Bonjour,
j'ai un probleme dans mon code avec une requete sql. J'ai du code php
contenant du javascript et quand j'utilise une variable javascript dans
une requete ça ne fonctionne pas.
<?php
...
echo "<script language=JavaScript>";
...
$idpage='tab[compteur]';//tab -> var tab
echo "alert(".$idpage.");";//tester et retourne le bon id quand commentaire sur la requete suivante
$sqldoc = 'SELECT * FROM page WHERE idPage='.$idpage.'';
$rdoc = mysql_query($sqldoc) or
die('
Erreur SQL
!
'.$sqldoc.'
'.mysql_error());
$tdoc = mysql_fetch_array($rdoc);
$doc=$tdoc['document'];
echo "alert(".$doc.");";
...
?>
</script>
RESULTAT :
alert(tab[compteur]);
Erreur SQL !
SELECT * FROM page WHERE nom=tab[compteur]
You
have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near '[compteur]'
at line 1
Si quelqu'un à une idée.
Je voudrais savoir comment on peut lancer une requete sql avec une variable javascript. Car apparement c'est ça le problème.
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 10:41
Hello
base du PHP :
php est interprété coté serveur
le javascript, lui, est exécuté coté client.
de plus, quand tu fais
$idpage='tab[compteur]'
tu mets un sting dans ta variable $idpage et ce string est "tab[compteur]" (et en aucun cas la valeur en index 'compteur' de tab !!
si tu nous disais ce que tu veux faire exactement ? (d'ou vient 'tab', comment l'as tu initialiser?)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 10:58
oui c'est possible :
- si tu connais la valeur de ta variable javascript quand tu ecris ton code php
ou
- en faisant un refresh partiel de ta page (par exemple...en AJAX)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
cs_27
Messages postés66Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention16 juillet 2007 11 juil. 2006 à 11:02
et ça serait quoi la syntaxe pour ma requete vu qu'apparement j'ai pas la bonne pour :
$sqldoc = 'SELECT * FROM page WHERE idPage="echo tab3[compteur"'';
Ca ne me marque pas d'erreur mais le javascript ne se lance plus car
j'ai mit des fenetres d'alertes dans mon code pour le test et elle ne
s'affiche plus. Donc j'ai pas la bonne syntaxe .
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 11:24
ok vais essayer de comprendre ton code ;)
juste un truc qui me saute au yeux:
c'est normal ça: $idEcran= mysql_free_result($req1); ??
$idEcran ne devrait -il pas recevoir le résultat de ta requete plutot que le true/false de retour de la liberation de la memoire occupée par ta requete req1 ?
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 11:30
Re!
effectivement tu n'arriveras pas à executer sur la meme page une requete SQL contenant une variable javascript.
Ce que tu peux faire, c'est stockéer les données de tes pages dans un tableau javascript et aller chercher les données dans ce tableau (à condition que ce ne soit pas trop lourd...)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 11:33
heu concernant le mysql_free_result, si ton code fonctinnait, c'est un gros coup de bol (ou alors tu n'avais que 1 ecran) car y aucune raison que mysql_free_result ressorte la meme chose qu'un mysql_fetch_array ou un truc du genre.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 11 juil. 2006 à 11:50
non..
ce qui pose probleme c'est ça:
$idpage='tab3[compteur]';
$sqldoc = 'SELECT * FROM page WHERE idPage='.$idpage.'';
tu vas chercher une ifno dans le BDD en utilisant idpage que tu penses initliaser avec ta variable javascript.
Ce n'est pas possible : au moment de l'interpretation php, ta variable n'existe pas.
ce que je te suggere est d'eviter de faire ta requete $sqldoc en tockant les données qu'elle renverrait dans un tableau (à condition que ce ne soit pas trop lourd).
ou tuliser la technologie AJAX, ca ca serait vraiment + propre.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
cs_27
Messages postés66Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention16 juillet 2007 11 juil. 2006 à 12:04
merci de ton aide mais ça va etre tendu pour moi ajax je connais pas du
tout et mettre ca dans un tableau, tu as raison en disant que ca va
etre carement lourd. Fau que je trouve une autre solution