une boucle qui plante....

une boucle qui plante.... - PHP - Programmation

Marsh Posté le 03-01-2007 à 11:06:50    

Hello !
 
J'ai un petit souci avec un tableau et un foreach... je ne comprends pas pourquoi !
 
tout d'abord je créé un tableau à la main de cette façon là :
 

Code :
  1. $rel_dim_ou[]=$dim_elem_cycle;
  2. $rel_dim_ou[]=$dim_elem_profil;
  3. $rel_dim_ou[]=100;


 
ensuite le tableau se rempli dynamiquement avec une requete :
 

Code :
  1. $query_sz = "SELECT * FROM ewb_toolbox_liste_dim WHERE ou_li_id=".$id_outil_int;
  2.          $hcur_re = sql_query( $DBtype_sz, $query_sz, $connect_re );
  3.          while($row_tab = sql_fetch_row( $DBtype_sz, $hcur_re ))
  4.          {
  5.             $rel_dim_ou[] = $row_tab[2];
  6.          }


 
 
ensuite je veux créer une nouvelle requete avec un foreach de cette façon là :
 

Code :
  1. foreach ($rel_dim_ou as $key => $value) {
  2.          if( $value != 0 )
  3.          {
  4.             $from_sz .= "ewb_re_elem di".$key.", ";
  5.             $where_sz .= "AND di".$key.".dimelem_id=".$value." AND di".$key.".re_id=re.re_id ";
  6.          }
  7.       }


 
... et là je ne sais pas pourquoi mais... ça plante !!!! Apache s'emballe... et ça plante !! :(  :sweat:  
 
qu'est ce qui pourrait bien provoquer un tel probleme ?
 
j'ai tenté de faire un print_r de mon $rel_dim_ou.. ça donne quelquechose comme ça :
 

Code :
  1. Array
  2. (
  3.     [0] => 24
  4.     [1] => 44
  5.     [2] => 39
  6.     [3] => 100
  7.     [4] => 24
  8. )


 
.... rien ne me parait anormal ! :(
 

Reply

Marsh Posté le 03-01-2007 à 11:06:50   

Reply

Marsh Posté le 03-01-2007 à 11:26:27    

qu'est ce que t'entend par ça plante ?
tu n'as aucun message d'erreur ?

Reply

Marsh Posté le 03-01-2007 à 11:37:20    

Apache qui prend toutes les ressources de la machine... la page qui pédale dans la choucroute...

Reply

Marsh Posté le 03-01-2007 à 12:07:05    

Hum, une jolie boucle sans sortie...
 
essaye d'inhiber, une boucle, puis l'autre, afin de pouvoir savoir laquelle plante..
ensuite le print_r tu l'a fait entre les deux boucles ?
c'est ta première ou la deuxième boucle qui plante ?
 
tiens juste une question, tu initialise bien tes from_sz, et where_sz à "" ?

Reply

Marsh Posté le 03-01-2007 à 12:14:06    

si c'est la deuxieme boucle qui plante, je te propose une autre solution qui reviens au meme:
 
for($i=0;$i<count($rel_dim_ou);$i++){
 if($rel_dim_ou[$i]!=0) {
  $from_sz .= "ewb_re_elem di".$key.", ";
  $where_sz .= "AND di".$key.".dimelem_id=".$rel_dim_ou[$i]." AND  di".$key.".re_id=re.re_id ";
 }
}

Reply

Marsh Posté le 03-01-2007 à 14:02:29    

je l'avais deja faite cette solution...  
en fait c pas cette boucle qui plantait.. mais une autre beaucoup plus bas dans le script.. une requete plus precisement

Reply

Sujets relatifs:

Leave a Replay

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