J'ai un problème avec l'envoi de variables contenues dans une boucle.. - PHP - Programmation
Marsh Posté le 24-12-2002 à 01:11:49
1. C'est pas le navigateur
2. Ouvre les yeux... quand tu inclues des apostrophes dans une chaine, comment tu veux que l'interpreteur devine que c'est pas la fin de chaine ?
Marsh Posté le 24-12-2002 à 01:15:52
je suis en fin de journée de taf la... j'ai bcp d'heure dans la tête et j'ai bobo, tu voudrais pas m'expliquer stp je vois pas la...
Marsh Posté le 24-12-2002 à 01:20:58
bon... on va aller doucement, j'ai rien d'autre a faire.
Php lit ton source et l'execute. Pour ca il doit reconnaitre les différents élements du programmes : nombres, mots clefs, fonctions, et chaines de caractères.
Une chaine de caractère est tout ce qui est compris entre une paire d'apostrophes. Exemple : "ma chaine"
Maintenant prenont ton source est regardons un peu ce que ca donne :
Code :
|
- on voit echo, on reconnait une instruction.
- on voit un ", ce qui suit est donc une chaine de caractères, jusqu'au prochain ". On lit donc la chaine "<center><h2>Autorisations </h2><form method="
- on continue la lecture : POST" action...
=> erreur, ce n'est pas reconnu..
pour ca, il faut eviter que la lecture de la chaine s'arrete a la lecture de l'apostrophe. On l'echappe dont avec un backslash '\' devant...
ca nous donne "une chaine avec des \"apostrophes\" dedans"
Marsh Posté le 24-12-2002 à 01:23:59
non elle n'est pas la l'erreur, ca marche dans un autre script.
Marsh Posté le 24-12-2002 à 01:24:46
Chrono a écrit : non elle n'est pas la l'erreur, ca marche dans un autre script. |
tout bonnement impossible
Marsh Posté le 24-12-2002 à 01:29:06
lorill a écrit : |
C ca 10 heures de TAF...
enfin merci
Marsh Posté le 24-12-2002 à 01:39:39
En voila une facile ..
Warning: Wrong parameter count for mysql_db_query()
Warning: mysql_num_rows(): supplied argument is not a valid MySQL
case "autorise";
$requeteFORM=mysql_db_query("SELECT * FROM ParamMenu" );
if(mysql_num_rows($requeteFORM)==0) { echo "BUG<br><br>";
}
else
{
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
Marsh Posté le 24-12-2002 à 01:43:45
Chrono a écrit : |
visiblement il veut des parametres en plus. La connexion peut-etre ?
Marsh Posté le 24-12-2002 à 01:52:53
ouai en faite il manquai le nom de la BDD dans la requete SELECT et le '$db_link à la fin..
Marsh Posté le 24-12-2002 à 01:57:21
PARSE ERROR
case "autorise";
$requeteFORM=mysql_db_query(bddd,"SELECT * FROM ParamMenu"',$db_link);
if(mysql_num_rows($requeteFORM)==0)
{ echo "BUG<br><br>";
}
else
{
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
echo "<center><h2>Autorisations </h2><form method=\"POST\" action=\"getautorisations.php\">
Voulez vous autoriser l'accès aux $Libelle ?<input type=\"checkbox\" name=\"checkbox\" value=\"$Id\">
<input type=\"hidden\" name=\"action\" value=\"select\"><input type=\"submit\" value=\"Envoyer\"></center></form><br><br>";
}
}
break;
Marsh Posté le 24-12-2002 à 02:51:16
case "autorise";
commence par mettre un : et pas un ; après "autorise"
**> case "autorise":
ensuite
$requeteFORM=mysql_db_query(bddd,"SELECT * FROM ParamMenu"',$db_link);
bddd, ça m'étonnerait qu'il aime, il veut une chaine de caractère ou une variable : "bddd" ou $bddd
le ' après le ParamMenu"', il aime pas non plus
**> $requeteFORM=mysql_db_query("bddd","SELECT * FROM ParamMenu",$db_link);
Marsh Posté le 24-12-2002 à 15:37:01
Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource
Warning: mysql_num_rows(): supplied argument is not a valid MySQL ...........
MERCI ETHERNAL POUR HIER SOIR...
LE PB CT LE ' APRES PARAMMENU..
PAR CONTRE TODAY G UNE ERREUR A CETTE LIGNE... ET LE NOM DE LA BDD C BIEN KOM CA KI FO L ECRIRE ET LE AUTORISE Y PREND UN ; A LA FIN.. EN TT CAS CA MARCHE..
case "autorise";
$requeteFORM=mysql_db_query('genobacces',"SELECT * FROM ParamMenu",$db_link);
if(mysql_num_rows($requeteFORM)==0)
{ echo "BUG<br><br>";
}
else
{
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
echo "<center><h2>Autorisations </h2><form method=\"POST\" action=\"getautorisations.php\">
Voulez vous autoriser l'accès aux $Libelle ?<input type=\"checkbox\" name=\"checkbox\" value=\"$Id\">
<input type=\"hidden\" name=\"action\" value=\"select\"><input type=\"submit\" value=\"Envoyer\"></center></form><br><br>";
}
}
break;
Marsh Posté le 24-12-2002 à 16:12:05
A Y EST CA MARCHE J AVAIS UN PB AVEC MON DB LINK MAL CONFIGURé..
PUTAIN IL FO KE JE ME FASSE UN FICHIER DE CONNEXION A LA BDD PROPRE, G DU M EMBROUILLER QQ PART
Marsh Posté le 24-12-2002 à 16:35:25
Ben y me retourne une erreur à la con...
case "autorise";
$requeteFORM=mysql_db_query('bddd',"SELECT * FROM ParamMenu",$db_link);
if(mysql_num_rows($requeteFORM)==0)
{ echo "BUG<br><br>";
}
else
{
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
echo "<center><h2>Autorisations </h2><form method=\"POST\" action=\"getautorisations.php\">
Voulez vous autoriser l'accès aux $Libelle ?<input type=\"checkbox\" name=\"checkbox\" value=\"$Id\">
<input type=\"hidden\" name=\"action\" value=\"select\"><input type=\"submit\" value=\"Envoyer\"></center></form><br><br>";
$x++;
}
}
break;
Marsh Posté le 24-12-2002 à 17:02:09
Comment empecher k''il y ait 10 boutons envoi!!
Je veux ke tous mes champs y figurent mais k'il n'y ai qu'un seul bouton d'envoi..
Marsh Posté le 24-12-2002 à 17:43:13
Chrono a écrit : |
c'est pas la syntaxe normale, tu peux me croire.
switch($var){
case '1':
instructions;
break;
case '2':
instructions;
break;
default:
instructions;
break;
}
pour ne plus avoir le bouton 10x, il suffit de le sortir de la boucle.
Tu comprends ce que tu fais ??
explications :
le programme exécute ce qui est dans le while() tant que la condition est respectée.
tu fais des echo '...'; --> il affiche ce que tu lui demandes autant de fois qu'il passe dans la boucle .
essaye de trouver un cours d'algo basique, ça ne peut que t'aider à comprendre
joyeux Noël
ps : le caps lock (majuscule) = CRIER ! --> aggressif --> pas gentil
Marsh Posté le 24-12-2002 à 17:55:52
C ce ke GT en train de faire (le sortir de la boucle) mais je me galère avec des autres tests et les variables à retourner....
Pour le switch, je V faire kom tu dis..
Enfin bon.. merci quand même et Joyeux Noël !
Marsh Posté le 24-12-2002 à 18:41:09
Ben voila, l'envoi se fait mais comment récupérer toutes les variables? sachant ke je n'en récupère aucune pour le moment...
(Je F SELECT * FROM... WHERE id="$Id".. sachant ke Id est une value des checkbox...) Désolé pour le fouilli...
$requeteFORM=mysql_db_query('bddd',"SELECT * FROM ParamMenu",$db_link);
if(mysql_num_rows($requeteFORM)==0)
{ echo "BUG<br><br>";
}
else
{
echo"<center><h3>Autorisations </h3></center>";
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
//==================================================
?>
<center><br><form action="getautorisations.php" method="post" >
Voulez vous autoriser l'accès aux <? echo"$Libelle"; ?> ?<input type="checkbox" name="checkbox" value="<? echo"$Id"; ?>">
<?
$x++;
}
?>
<input type="hidden" name="action" value="select"><br><br><input type="submit" value="Envoyer"></center></form><br><br>
<?
}
break;
Marsh Posté le 24-12-2002 à 21:39:29
tu veux récupérer les variables de tes checkbox cochées ?
désolé je modifie un peu ton code, mais ça ne devrait pas trop te perturber, si c'est le cas continue à utiliser le tiens avec les adaptations.
Code :
|
récupération (getautorisations.php):
Code :
|
Marsh Posté le 26-12-2002 à 22:00:40
Je te remerci..
Par contre, à koi ca sert de mettre "1" dans "value" ?
je voulais mettre la variable "$Libelle"...
Marsh Posté le 26-12-2002 à 22:28:05
pour moi une checkbox vaut 1 ou 0, coché ou pas coché.
mais tu peux faire comme tu veux
j'espère que ça fct le
<input type="checkbox" name="checkbox[<? echo $Id; ?>]" value="1"><br>
Marsh Posté le 26-12-2002 à 23:33:01
ok
j'ai opté pour <input type="checkbox" name="checkbox[<? echo $Id; ?>]" checked value="1" >
car ke ce soit 1 ou 0 C pas coché..
Marsh Posté le 26-12-2002 à 23:52:06
en fait il m'est bien utile le 1 et le 0 car ca me permet d'afficher des cases cochées qui ne doivent pas etres prisent en compte.
Marsh Posté le 24-12-2002 à 01:10:32
J'ai un super problème, G une erreur à la ligne en gras...
(Erreur de " ou de ' soit disant)
(je croyais ke CT le navigateur qui me retournais l'erreur..)
case "autorise";
$requeteFORM=mysql_db_query("SELECT * FROM ParamMenu" );
if(mysql_num_rows($requeteFORM)==0)
{ echo "BUG<br><br>";
}
else
{
$x = 0;
while ($x < mysql_num_rows($requeteFORM))
{
$Id=mysql_result($requeteFORM,$x,'Id_Poste';
$Libelle=mysql_result($requeteFORM,$x,'Libelle_Menu';
echo "<center><h2>Autorisations </h2><form method="POST" action="getautorisations.php">
Voulez vous autoriser l'accès aux $Libelle ?<input type="checkbox" name="checkbox" value="$Id">
<input type=\"hidden\" name=\"action\" value=\"select\"><input type=\"submit\" value=\"Envoyer\"></center></form><br><br>";
}
}
break;
Message édité par chrono le 24-12-2002 à 18:39:02