Problème avec while qui ne continu pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec while qui ne continu pas

Re: Problème avec while qui ne continu pas

par Damien34 » 21 mai 2012, 09:10

Merci beaucoup... =D>

C'est souvent des choses évidentes que l'on zappe...

Bonne journée.

Re: Problème avec while qui ne continu pas

par Ryle » 20 mai 2012, 23:52

C'est parce que tu utilises la même variable $req_1 pour ta requête principale et ton, mais également à l'intérieur de ton while. Et comme tu écrases le contenu de ta variable en pleine itération, la suivante fonctionne moins bien ;)

Edit : ah ben pas assez rapide ... :)

Re: Problème avec while qui ne continu pas

par xTG » 20 mai 2012, 23:51

C'est normal tu réécrases $req_1 avec une seconde requête à l'intérieur de la boucle.

Problème avec while qui ne continu pas

par Damien34 » 20 mai 2012, 23:28

Bonsoir,

Je bloque depuis plusieurs heures sur un simple while dans lequel j’exécute un mysql_fetch_array. Lorsque je teste la requete dans phpmyadmin j'ai bien deux résultat.
Pourtant je n'ai qu'un seul résultat qui s'affiche dans mon script, même en phase de debug :
							   // requète SQL
								$sql_1 = "SELECT * FROM ".$prefixe."_categories";

								// DEBUG
								echo 'sql_1 : '.$sql_1.'<br />';
								
								// on envoie la requète 
								$req_1 = mysql_query($sql_1) or die('Erreur SQL !<br>'.$sql_1.'<br>'.mysql_error()); 

								// DEBUG
								echo 'req_1 : '.$req_1.'<br />';								

								// On donne une valeur à notre variable
								$i = 1;
								$item = 2;

								// on lis les résultats avec la boucle while();
								while($resultat_1 = mysql_fetch_array($req_1)) {
								
									// on remplace les espaces par des "_" pour créer l'adresse
										$titre_cat_adresse = str_replace(' ','_',$resultat_1['titre']);
								
									// DEBUG
										echo '<br />titre_cat_adresse : '.$titre_cat_adresse;
								
								// on affiche le nom de la catégorie (série)
								//echo'<li><a href="./categorie-'.$resultat['id'].'-'.$titre_cat_adresse.'.html">'.stripslashes($resultat['titre']).'</a>';
								
								// Requètes diverses
									$sql1_1 = "SELECT count(*) as qte FROM ".$prefixe."_articles WHERE categorie='".$resultat_1['id']."' AND valide!='non' AND time <= '".$temps_actuel."'";
									$sql2_1 = "SELECT * FROM ".$prefixe."_articles WHERE categorie='".$resultat_1['id']."' AND valide!='non' AND time <= '".$temps_actuel."'  ORDER BY time DESC";
								
								// DEBUG 
									echo '<br /> sql1_1 :'.$sql1_1;
									echo '<br /> sql2_1 :'.$sql2_1;
							

								// on compte le nombre d'articles dans cette catégorie
								$req1 = mysql_query($sql1_1) or die('Erreur SQL !<br>'.$sql1_1.'<br>'.mysql_error()); 
								$nombre = mysql_fetch_array($req_1);
								echo '<div onmouseout="mouseOut()" onmouseover="mouseOverItem()" id="itemMenu'.$item.'" class="item">';
								if($nombre > "0")
									{
										// on regarde quels sont les article dans cette catégorie
										$req2_1 = mysql_query($sql2_1) or die('Erreur SQL !<br>'.$sql2_1.'<br>'.mysql_error()); 
											// on lis les résultats avec la boucle while();
											while($resultat2_1 = mysql_fetch_array($req2_1)) {
											
												// on supprime les ".", """, "'" et on remplace les espaces par des "_" pour créer l'adresse
												// Pour ce faire on met toutes les erreurs dans un tableau
												$erreur= array('.','\'','/','"','-');
												$titre_art_adresse = str_replace($erreur,'',$resultat2_1['titre']);
												$titre_art_adresse = str_replace(' ','_',$titre_art_adresse);
												$titre_art_adresse = remove_accents($titre_art_adresse);
											
												$resultat2_1['titre'] = substr($resultat2_1['titre'], 0, 25).'...';
												echo'<a href="article-'.$resultat2_1['categorie'].'-'.$resultat2_1['id'].'-'.$titre_art_adresse.'.html" class="lienItem">'.stripslashes($resultat2_1['titre']).'</a>&nbsp;|&nbsp;';
											}
										//echo '</ul>';
									}									
								echo '</div>';
								$item++;
								}
Merci d'avance pour votre aide et vos conseils.