Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1691 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°275370
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:10:32  profilanswer
 

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
mood
Publicité
Posté le 24-12-2002 à 01:10:32  profilanswer
 

n°275371
lorill
Posté le 24-12-2002 à 01:11:49  profilanswer
 

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 ?

n°275372
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:15:52  profilanswer
 

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
n°275373
lorill
Posté le 24-12-2002 à 01:20:58  profilanswer
 

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"
 

n°275375
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:23:59  profilanswer
 

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
n°275377
lorill
Posté le 24-12-2002 à 01:24:46  profilanswer
 

Chrono a écrit :

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


tout bonnement impossible  :jap:  

n°275378
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:27:51  profilanswer
 

OK T TROP FORT

n°275379
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:29:06  profilanswer
 

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
n°275385
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:39:39  profilanswer
 

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

n°275386
lorill
Posté le 24-12-2002 à 01:43:45  profilanswer
 

Chrono a écrit :


Warning: Wrong parameter count for mysql_db_query()  


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

mood
Publicité
Posté le 24-12-2002 à 01:43:45  profilanswer
 

n°275387
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:52:53  profilanswer
 

ouai en faite il manquai le nom de la BDD dans la requete SELECT et le '$db_link à la fin.. :sarcastic:

n°275388
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 01:57:21  profilanswer
 

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;

n°275391
ethernal
Chercheur de vérité...
Posté le 24-12-2002 à 02:51:16  profilanswer
 

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...
n°275566
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 15:37:01  profilanswer
 

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
n°275577
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 16:12:05  profilanswer
 

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

n°275583
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 16:35:25  profilanswer
 

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
n°275589
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 17:02:09  profilanswer
 

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

n°275598
ethernal
Chercheur de vérité...
Posté le 24-12-2002 à 17:43:13  profilanswer
 

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...
n°275599
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 17:55:52  profilanswer
 

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
n°275610
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 18:41:09  profilanswer
 

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
n°275619
chrono
Ne m'appelez plus Dieu...
Posté le 24-12-2002 à 18:51:29  profilanswer
 

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

n°275642
ethernal
Chercheur de vérité...
Posté le 24-12-2002 à 21:39:29  profilanswer
 

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...
n°276203
chrono
Ne m'appelez plus Dieu...
Posté le 26-12-2002 à 22:00:40  profilanswer
 

Je te remerci..
 
Par contre, à koi ca sert de mettre "1" dans "value" ?
 
je voulais mettre la variable "$Libelle"...

n°276219
ethernal
Chercheur de vérité...
Posté le 26-12-2002 à 22:28:05  profilanswer
 

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...
n°276269
chrono
Ne m'appelez plus Dieu...
Posté le 26-12-2002 à 23:33:01  profilanswer
 

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

n°276275
chrono
Ne m'appelez plus Dieu...
Posté le 26-12-2002 à 23:52:06  profilanswer
 

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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

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

 

Sujets relatifs
[PHP] Probleme avec la durée de vie d'une session ...probleme de compilation sous emacs
Problème lié à la disparition de la balise "name" + insertion smileys.[C, C++] Problème d'arrondis ...
[ C - Gros debutant ]Probleme de scanfprobleme pour retirer le chemin d'un fichier
les variablesprobleme de variable
Petit probleme pour fermer une appletprobleme sur la commande echo [shell de Bourne]
Plus de sujets relatifs à : J'ai un problème avec l'envoi de variables contenues dans une boucle..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR