J'ai un problème avec l'envoi de variables contenues dans une boucle..

J'ai un problème avec l'envoi de variables contenues dans une boucle.. - PHP - Programmation

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
Reply

Marsh Posté le 24-12-2002 à 01:10:32   

Reply

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 ?

Reply

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...


Message édité par chrono le 24-12-2002 à 01:16:22
Reply

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 :
  1. echo "<center><h2>Autorisations </h2><form method="POST" action="getautorisations.php">


 
- 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"
 

Reply

Marsh Posté le 24-12-2002 à 01:23:59    

non elle n'est pas la l'erreur, ca marche dans un autre script.


Message édité par chrono le 24-12-2002 à 01:24:33
Reply

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  :jap:  

Reply

Marsh Posté le 24-12-2002 à 01:27:51    

OK T TROP FORT

Reply

Marsh Posté le 24-12-2002 à 01:29:06    

lorill a écrit :


tout bonnement impossible  :jap:  
 


 
 :pfff:  C ca 10 heures de TAF...
 
enfin merci :jap:


Message édité par chrono le 24-12-2002 à 01:29:37
Reply

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';);

Reply

Marsh Posté le 24-12-2002 à 01:43:45    

Chrono a écrit :


Warning: Wrong parameter count for mysql_db_query()  


visiblement il veut des parametres en plus. La connexion peut-etre ?

Reply

Marsh Posté le 24-12-2002 à 01:43:45   

Reply

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.. :sarcastic:

Reply

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;

Reply

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);


Message édité par ethernal le 24-12-2002 à 02:54:51

---------------
...oups kernel error...
Reply

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;


Message édité par chrono le 24-12-2002 à 15:37:46
Reply

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

Reply

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;


Message édité par chrono le 24-12-2002 à 16:35:57
Reply

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..

Reply

Marsh Posté le 24-12-2002 à 17:43:13    

Chrono a écrit :


... ET LE AUTORISE Y PREND UN ; A LA FIN.. EN TT CAS CA MARCHE..


 
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 [:tobrainc]  
 
ps : le caps lock (majuscule) = CRIER ! --> aggressif --> pas gentil


Message édité par ethernal le 24-12-2002 à 17:47:04

---------------
...oups kernel error...
Reply

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 !


Message édité par chrono le 24-12-2002 à 17:56:49
Reply

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;


Message édité par chrono le 24-12-2002 à 18:44:38
Reply

Marsh Posté le 24-12-2002 à 18:51:29    

Dites moi pas ke C pas possible.. :pfff:

Reply

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 :
  1. $requeteFORM=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu",$db_link);
  2. if(mysql_num_rows($requeteFORM)==0)
  3. {
  4.   echo "BUG<br><br>";
  5. }
  6. else
  7. {
  8. ?>
  9.   <center><h3>Autorisations </h3></center>
  10.   <center><br><form action="getautorisations.php" method="post" >
  11. <?
  12.   while ( $row= mysql_fetch_array($requeteFORM) )
  13.   {
  14.     $Id= $row['Id_Poste']);
  15.     $Libelle= $row['Libelle_Menu'];
  16.     //==================================================
  17. ?>
  18.     Voulez vous autoriser l'accès aux <? echo $Libelle; ?>
  19.     <input type="checkbox" name="checkbox[<? echo $Id; ?>]" value="1"><br>
  20. <?
  21.   }
  22. ?>
  23.   <input type="hidden" name="action" value="select"><br><br>
  24.   <input type="submit" value="Envoyer"></form></center><br><br>
  25. <?
  26. }
  27. break;


 
récupération (getautorisations.php):

Code :
  1. //affichage des checkbox modifiées
  2. $chkbx= $HTTP_POST_VARS["checkbox"];
  3. while( list($key, $val)= each($chkbx) )
  4. {
  5.   echo "$key $val<br>";
  6. }


Message édité par ethernal le 24-12-2002 à 21:40:30

---------------
...oups kernel error...
Reply

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"...

Reply

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>


---------------
...oups kernel error...
Reply

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é..

Reply

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed