Bonsoir tt le monde, G un pb de boucles dans des boucles.. - PHP - Programmation
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?
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);
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..
Marsh Posté le 27-12-2002 à 17:40:01
samuelp a écrit : |
Ca doit etre ca, je V voir, je crois ke je V te remercier dans pas lgpts..
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?
Marsh Posté le 27-12-2002 à 18:15:02
Je V peter un cable la...
Ou peux bien se trouver cette P... d'erreur de M....!!!?
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;
Marsh Posté le 27-12-2002 à 18:15:51
Chrono a écrit : Ca marche pas... |
Mets un echo "Bonjour" dans ta boucle voir si ça passe ou pas.
Sinon opte pour mysql_fetch_row plutot que mysql_fetch_array
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?
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..
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?
Marsh Posté le 27-12-2002 à 22:16:50
Chrono a écrit : euh ca marche pas ca?? |
Fais un echo $z ;
C bizard en effet
Et c'est pas $z==0 au debut mais $z=0
Marsh Posté le 27-12-2002 à 23:02:24
C kom ca k'on affecte le resultat à la variable?
$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'];
.....
Marsh Posté le 27-12-2002 à 23:05:50
Chrono a écrit : C kom ca k'on affecte le resultat à la variable? |
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
Marsh Posté le 28-12-2002 à 08:05:13
Chrono a écrit : |
sois plus indulgent avec toi meme, meme si tu es ds le vrai ...
bonne nuit
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...
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
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..