Bonsoir tt le monde, G un pb de boucles dans des boucles..

Bonsoir tt le monde, G un pb de boucles dans des boucles.. - PHP - Programmation

Marsh Posté le 27-12-2002 à 17:35:23    

dites moi... pkoi ca marche pas ca?
 
...
else
{  
$id[$y]=$row3['Type'];
$designation[$y]=$row3['Designation'];
 
$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='$id[$y]' AND Libelle_Menu!='$designation[$y]'",$db_link);
 
while ($row4= mysql_fetch_array($reqB))
{
 
$Id2=$row4['Id_Poste'];
$Libelle2=$row4['Libelle_Menu'];
...
 
C pas evident à comprendre kom ca mais si je commence à expliquer on y est encore demain.. :sweat:

Reply

Marsh Posté le 27-12-2002 à 17:35:23   

Reply

Marsh Posté le 27-12-2002 à 17:36:49    

???
 
c'est quoi ton erreur? ca boucle et ca fait rien? ou y a un message?

Reply

Marsh Posté le 27-12-2002 à 17:37:36    


$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id[$y]."' AND Libelle_Menu!='".$designation[$y]."'",$db_link);
 

Reply

Marsh Posté le 27-12-2002 à 17:38:34    

ben y me prend plein de fois des resultat de boucles antérieures... et ne me prend pas tous les resultats de la dernière boucle..
 
Je peux pas mettre le code entier, c un peu long..

Reply

Marsh Posté le 27-12-2002 à 17:40:01    

samuelp a écrit :


$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id[$y]."' AND Libelle_Menu!='".$designation[$y]."'",$db_link);
 
 


 
Ca doit etre ca, je V voir, je crois ke je V te remercier dans pas lgpts..

Reply

Marsh Posté le 27-12-2002 à 17:44:36    

Ca marche pas...
 
Y fo pas ke je fasse une concaténation également au niveau de l'affectation des résultats dans les variables?

Reply

Marsh Posté le 27-12-2002 à 18:04:27    

normalement, ca doit marcher tel quel

Reply

Marsh Posté le 27-12-2002 à 18:15:02    

Je V peter un cable la... :fou:  :pt1cable:  
Ou peux bien se trouver cette P... d'erreur de M....!!!?
 :heink:  
 
 
echo"<center><h3>Demande d'autorisations</h3></center>";
 
$requeteFORM=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu",$db_link);
 
while ($row2=mysql_fetch_array($requeteFORM))  
{ //============================1
 
$Id=$row2['Id_Poste'];
$Libelle=$row2['Libelle_Menu'];
 
 
$requeteCount=mysql_db_query('bddd',"SELECT COUNT(Id_Poste) FROM ParamMenu",$db_link);
$resultat=mysql_result($requeteCount,0,"COUNT(Id_Poste)" );
 
for($y==1;$y<$resultat;$y++)
{ //==============================2
 
$reqA=mysql_db_query('bddd',"SELECT Designation, Type FROM Menu_U WHERE Code_UTPR='$Code_UTPR' AND Designation='$Libelle' AND Type='$Id'",$db_link);
 
while ($row3= mysql_fetch_array($reqA))
{ //=============================3
 
if(mysql_num_rows($reqA)==0)  
{  
echo "Pour le moment, ce client ne possède aucune autorisation d'accès à ses documents.";
}
else
{ //=============================4
 
$id[$y]=$row3['Type'];
$designation[$y]=$row3['Designation'];
 
// for($x==0;$x<1;$x++)
// { //=============================5
 
//$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id."' AND Libelle_Menu!='".$designation."'",$db_link);
 
$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id[$y]."' AND Libelle_Menu!='".$designation[$y]."'",$db_link);
 
while ($row4= mysql_fetch_array($reqB))
{ //=============================6
 
$Id2=$row4['Id_Poste'];
$Libelle2=$row4['Libelle_Menu'];
 
?>
Voulez vous autoriser l'accès aux
<?
echo $Libelle2;
?>
?
<input type="checkbox" name="checkbox[<? echo $Id2; ?>]" value="1"><br><br>
<?
 
 
} //=============================6
// } //=============================5
 
} //=============================4
} //=============================3
} //=============================2
} //=============================1
 
?>
<input type="hidden" name="action" value="select"><br><br>
<input type="submit" value="Envoyer"></center></form><br><br>
<?
 
break;

Reply

Marsh Posté le 27-12-2002 à 18:15:51    

Chrono a écrit :

Ca marche pas...
 
Y fo pas ke je fasse une concaténation également au niveau de l'affectation des résultats dans les variables?


 
Mets un echo "Bonjour" dans ta boucle voir si ça passe ou pas.
 
 Sinon opte pour mysql_fetch_row plutot que mysql_fetch_array

Reply

Marsh Posté le 27-12-2002 à 18:21:20    

Attention!!!
Ceux ki ont mal à la tête doivent s'abstenir de lire..

 
En fait, G une table avec tous les types de dossiers possibles et existants... (un ID et un Libelle) 15 types..
 
Et une autre table qui me sert à faire un Menu d'autorisation d'accès pour chaque user...
Celui ci à son "code relation user/projet) associé à un type de document dans cette table...
 
Moi je veux afficher le Menu user mais sans reafficher les types de dossier deja autorisés...
 
Le con, il marche bien pour le premier resultat, puis il me sort la liste complete! puis il saute le resultat suivant (k'il fo sauter) puis me redonne la liste complète, puis saute le bon...etc..
 
relou hein?

Reply

Marsh Posté le 27-12-2002 à 18:21:20   

Reply

Marsh Posté le 27-12-2002 à 18:34:24    

Bon je l'ai fait marché..mais du coup la dernière requete n'est plus ds aucune boucle...
 
Si j'arrive à concatener les variables Id et Designation ca devrait marcher...
 
Mais ca marche pas.. :cry:  :(  :fou:  :pt1cable:  :heink:  :sweat:


Message édité par chrono le 27-12-2002 à 20:08:32
Reply

Marsh Posté le 27-12-2002 à 22:03:06    

euh ca marche pas ca??
 
echo"<center><h3>Demande d'autorisations</h3></center>";
 
$z==0;
 
$reqF=mysql_db_query('bddd',"SELECT COUNT(Type) FROM Menu_U WHERE Code_UTPR='$Code_UTPR'",$db_link);
 
$NbResult2=mysql_result($reqF,0,"COUNT(Type)" );
 
echo"NBRESULT: ($NbResult2)";
 
$requeteFORM=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu",$db_link);
 
while ($row2=mysql_fetch_array($requeteFORM))  
{ //============================1
 
$Id=$row2['Id_Poste'];
$Libelle=$row2['Libelle_Menu'];
 
 
$reqA=mysql_db_query('bddd',"SELECT Designation, Type FROM Menu_U WHERE Code_UTPR='$Code_UTPR' AND Designation='$Libelle' AND Type='$Id'",$db_link);
 
while ($row3= mysql_fetch_array($reqA))
{ //=============================2
 
if(mysql_num_rows($reqA)==0)  
{  
echo "Pour le moment, ce client ne possède aucune autorisation d'accès à ses documents.";
}
else
{ //=============================3
 
while($z<$NbResult2)
{ //=============================4
 
$id[$z]=$row3['Type'];
$designation[$z]=$row3['Designation'];
 
echo"ID: ($id[$z])";
 
$z++;
 
} //=4
} //=3
} //=2
} //=1
 
 
ca me marque ID: (1) ID: (1) ID: (1)
j'ai effectivement 3 enregistrements correspondants dans la BDD mais pkoi $z s'incremente pas?

Reply

Marsh Posté le 27-12-2002 à 22:16:50    

Chrono a écrit :

euh ca marche pas ca??
 
echo"<center><h3>Demande d'autorisations</h3></center>";
 
$z==0;
 
$reqF=mysql_db_query('bddd',"SELECT COUNT(Type) FROM Menu_U WHERE Code_UTPR='$Code_UTPR'",$db_link);
 
$NbResult2=mysql_result($reqF,0,"COUNT(Type)" );
 
echo"NBRESULT: ($NbResult2)";
 
$requeteFORM=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu",$db_link);
 
while ($row2=mysql_fetch_array($requeteFORM))  
{ //============================1
 
$Id=$row2['Id_Poste'];
$Libelle=$row2['Libelle_Menu'];
 
 
$reqA=mysql_db_query('bddd',"SELECT Designation, Type FROM Menu_U WHERE Code_UTPR='$Code_UTPR' AND Designation='$Libelle' AND Type='$Id'",$db_link);
 
while ($row3= mysql_fetch_array($reqA))
{ //=============================2
 
if(mysql_num_rows($reqA)==0)  
{  
echo "Pour le moment, ce client ne possède aucune autorisation d'accès à ses documents.";
}
else
{ //=============================3
 
while($z<$NbResult2)
{ //=============================4
 
$id[$z]=$row3['Type'];
$designation[$z]=$row3['Designation'];
 
echo"ID: ($id[$z])";
 
$z++;
 
} //=4
} //=3
} //=2
} //=1
 
 
ca me marque ID: (1) ID: (1) ID: (1)
j'ai effectivement 3 enregistrements correspondants dans la BDD mais pkoi $z s'incremente pas?



 
Fais un echo $z ;
 
C bizard en effet
 
Et c'est pas $z==0 au debut mais $z=0

Reply

Marsh Posté le 27-12-2002 à 23:02:24    

C kom ca k'on affecte le resultat à la variable? :heink:  
 
 
 
 
 
$reqA=mysql_db_query('bddd',"SELECT Designation, Type FROM Menu_U WHERE Code_UTPR='$Code_UTPR' AND Designation='$Libelle' AND Type='$Id'",$db_link);
 
while ($row3= mysql_fetch_array($reqA))
{ //=============================2
 
if(mysql_num_rows($reqA)==0)  
{  
echo "Pour le moment, ce client ne possède aucune autorisation d'accès à ses documents.";
}
else
{ //=============================3
 
while($z<=$NbResult2)
{ //=============================4
 
$id[$z]=$row3['Type'];
// $designation[$z]=$row3['Designation'];
 
echo"ID: ($id[$z])";
 
$z++;
 
} //=4
} //=3
} //=2
} //=1
 
$y=1;
 
echo" Insert : ($NbResult2$y)<br>";
 
while($y<=$NbResult2)
{ //=============================5
 
$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id[$y]."'",$db_link);
 
while ($row4= mysql_fetch_array($reqB))
{ //=============================6
 
$Id2=$row4['Id_Poste'];
$Libelle2=$row4['Libelle_Menu'];
.....


Message édité par chrono le 27-12-2002 à 23:03:06
Reply

Marsh Posté le 27-12-2002 à 23:05:50    

Chrono a écrit :

C kom ca k'on affecte le resultat à la variable? :heink:  
 
 
 
 
 
$reqA=mysql_db_query('bddd',"SELECT Designation, Type FROM Menu_U WHERE Code_UTPR='$Code_UTPR' AND Designation='$Libelle' AND Type='$Id'",$db_link);
 
while ($row3= mysql_fetch_array($reqA))
{ //=============================2
 
if(mysql_num_rows($reqA)==0)  
{  
echo "Pour le moment, ce client ne possède aucune autorisation d'accès à ses documents.";
}
else
{ //=============================3
 
while($z<=$NbResult2)
{ //=============================4
 
$id[$z]=$row3['Type'];
// $designation[$z]=$row3['Designation'];
 
echo"ID: ($id[$z])";
 
$z++;
 
} //=4
} //=3
} //=2
} //=1
 
$y=1;
 
echo" Insert : ($NbResult2$y)<br>";
 
while($y<=$NbResult2)
{ //=============================5
 
$reqB=mysql_db_query('bddd',"SELECT Id_Poste, Libelle_Menu FROM ParamMenu WHERE Id_Poste!='".$id[$y]."'",$db_link);
 
while ($row4= mysql_fetch_array($reqB))
{ //=============================6
 
$Id2=$row4['Id_Poste'];
$Libelle2=$row4['Libelle_Menu'];
.....


 
Je pense.  
 
 Si tu ne trouves toujours pas je veux bien debuguer ton appli (j'ai que ça a foutre en ce moment), tu me fileras la structure de tes tables et on verra ce qu'on peut faire ;)

Reply

Marsh Posté le 28-12-2002 à 08:05:13    

Chrono a écrit :


 
Le con, il marche bien pour  
 
relou hein?


 
sois plus indulgent avec toi meme, meme si tu es ds le vrai ...
bonne nuit  :D

Reply

Marsh Posté le 28-12-2002 à 17:16:45    

Comment faire pour k'il ne boucle pas kom un con?
 
 
while (list($cle, $valeur) = each($ID))
{ //=============================5
 
$reqY=mysql_db_query('bddd',"SELECT Id_Poste FROM ParamMenu WHERE Id_Poste!='$valeur'",$db_link);
 
while ($row4= mysql_fetch_array($reqY))
{ //=============================6
 
$Id2=$row4['Id_Poste'];
echo "$Id2";
 
A l'affichage G kom resultat:
 
2 3 4 5 6
1 3 4 5 6
1 2 4 5 6
 
(vu ke G 3 enregistrements) Mais comment contrer ce pb?
 
PS : moi je veux 4 5 6 kom resultat...


Message édité par chrono le 28-12-2002 à 17:20:56
Reply

Marsh Posté le 28-12-2002 à 18:41:44    

C possible au moins? :pfff:

Reply

Marsh Posté le 28-12-2002 à 19:02:27    

!= existe en sql ???
c pas plutot <>

Reply

Marsh Posté le 28-12-2002 à 19:49:44    

C pareil...

Reply

Marsh Posté le 29-12-2002 à 05:28:07    

autant pr moi
 
affiche le code que tu as maintenant.
affiche la valeur de $reqY a chaque passage de boucle (la est le probleme a mon avis)
affiche le contenu de ta table aussi

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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