rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[Php-mysql] Problème While qui s'arrête

Posté par florent_mi, le mercredi 16 janvier 2008 à 07:48:24
Bonjour,

Sur un de mes sites, j'ai un problème que j'arrive absoluement pas à comprendre. Je m'explique:

J'effectue une requête sql, puis je l'appelle en faisant un While. Le problème est que ce while s'arrête, sans raison, à endroits NON fixes. Le seul point commun que j'ai dégagé semble que la boucle s'arrête après une variable, mais jamais la même, et appelle même des données d'une autre table absoluement pas appellée dans la requête...

Voici le code:

<form name="form" id="form">
  <select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
    <? if ($sous_domaine == "www"){?><option selected="selected">S&eacute;lectionnez<­/option><? }
	$sous_domaines = mysql_query("SELECT * FROM regions ORDER BY region_repertoire") OR DIE(MYSQL_ERROR()) ; // Requ&ecirc;te SQL
			while ($resultats_sous_domaines = mysql_fetch_array($sous_domaines) )
				{
					$region_nom_reroutage = $resultats_sous_domaines['region_nom'];
					$region_repertoire_reroutage = $resultats_sous_domaines['region_repertoire'];
		echo "<option value=\"";
    	echo $url1;echo $region_repertoire_reroutage;
		echo $url2;
		echo $cat;
		if ($sscat != "")
			{
				echo "/";
				echo $sscat;
			}?>.html"<?
		if ($sous_domaine == $region_repertoire_reroutage)
			{
	        	echo "selected=\"selected\"";
			} 
	echo ">";
	echo $region_nom_reroutage;
   	echo "</option>
	";
				} ?>
  </select>
                        </form>


Avez-vous une idée d'où cela pourrait venir?
Répondre à florent_mi  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le mercredi 16 janvier 2008 à 10:11:40
Bonjour,

Déja mets les tags php: <?php ?> au lieu de <? ?> sinon en php5 ça mets la panique

ensuite il te manquait la fermeture \" de value

essayes comme ça je t'ai un peu simplifié ton code en concaténant plutot que de faire des echo succéssifs.

<form name="form" id="form">
  <select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
    <?
	if ($sous_domaine == "www"){
	?>
	<option selected="selected">S&eacute;lectionnez<­/option><?
	}
	$sous_domaines = mysql_query("SELECT * FROM regions ORDER BY region_repertoire") OR DIE(MYSQL_ERROR()) ; // Requ&ecirc;te SQL
		while ($resultats_sous_domaines = mysql_fetch_array($sous_domaines) ){
			$option="<option value=\"".$url1.$resultats_sous_domaines['region_r­epertoire'].$url2.$cat;
			
			if ($sscat != ""){
				$option.= "/".$sscat;
			}
			$option.=".html"
			$option.="\""; // c'est ca qui manquait, la fermeture \" de value
		if ($sous_domaine == $resultats_sous_domaines['region_repertoire'])
			{
	        	$option.= "selected=\"selected\"";
			} 
	$option.=">".$resultats_sous_domaines['region_­nom'];
   	$option.= "</option>";
	echo $option;
				} ?>
  </select>
 </form>

Répondre à Alain42

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
florent_mi, le mercredi 16 janvier 2008 à 12:12:56
Merci de ta réponse,

J'ai modifié les <? en <?php sur toutes mes pages.

Par contre, y compris avec la modification, cela n'a rien changé, si ce n'est que la boucle s'arrête en fin de <option>. Il manque toujours environ la moitié des données.

C'est vraiment bizzare car cela ne fait ça que sur ce code...
Répondre à florent_mi

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le mercredi 16 janvier 2008 à 13:16:20
re,

$sous_domaines = mysql_query("SELECT * FROM regions ORDER BY region_repertoire") OR DIE(MYSQL_ERROR()) ; // Requête SQL

essayes:

<form name="form" id="form">
  <select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<?php
	if ($sous_domaine == "www"){
		$sous_domaines = mysql_query("SELECT * FROM regions ORDER BY region_repertoire") or die("Pb avec la requette ".mysql_error()) ; // Requ&ecirc;te SQL
		echo "Nombre d'enr trouves: ".mysql_num_rows($sous_domaines);// ça tu l'enlevera apres
?>
	<option selected="selected">S&eacute;lectionnez<­/option>
<?php
	}
		while ($resultats_sous_domaines = mysql_fetch_array($sous_domaines) ){
			$option="<option value=\"".$url1.$resultats_sous_domaines['region_r­epertoire'].$url2.$cat;
			
			if ($sscat != ""){
				$option.= "/".$sscat;
			}
			$option.=".html"
			$option.="\""; // c'est ca qui manquait, la fermeture \" de value
			if ($sous_domaine == $resultats_sous_domaines['region_repertoire']){
	        	$option.= "selected=\"selected\"";
			} 
			$option.=">".$resultats_sous_domaines['regio­n_nom'];
			$option.= "</option>";
			
			echo $option;
		} 
?>
  </select>
 </form>




J'ai déplacé la requette car si message d'erreur il ne se voit pas car il est dans la partie <select> </select>
Répondre à Alain42

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
florent_mi, le mercredi 16 janvier 2008 à 18:54:38
Résultat: 22 enregistrements trouvés, 7 d'affichés... :-s
Répondre à florent_mi

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le mercredi 16 janvier 2008 à 23:30:00
Ce ne serait pas la fin du if(........="www"){

qui génerait ?

Essayes comme ça, je l'ai mis après la boucle while:

<form name="form" id="form">
  <select name="jumpMenu" id="jumpMenu" onchange="MM_jumpMenu('parent',this,0)">
<?php
	if ($sous_domaine == "www"){
		$sous_domaines = mysql_query("SELECT * FROM regions ORDER BY region_repertoire") or die("Pb avec la requette ".mysql_error()) ; // Requête SQL
		echo "Nombre d'enr trouves: ".mysql_num_rows($sous_domaines);// ça tu l'enlevera apres
?>
	<option selected="selected">Sélectionnez</option>­
<?php
	
		while ($resultats_sous_domaines = mysql_fetch_array($sous_domaines) ){
			$option="<option value=\"".$url1.$resultats_sous_domaines['region_r­epertoire'].$url2.$cat;
			
			if ($sscat != ""){
				$option.= "/".$sscat;
			}
			$option.=".html"
			$option.="\""; // c'est ca qui manquait, la fermeture \" de value
			if ($sous_domaine == $resultats_sous_domaines['region_repertoire']){
	        	$option.= "selected=\"selected\"";
			} 
			$option.=">".$resultats_sous_domaines['regio­n_nom'];
			$option.= "</option>";
			
			echo $option;
		} 
	}// là
?>
  </select>
 </form>

Répondre à Alain42

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 florent_mi, le jeudi 17 janvier 2008 à 13:25:55
Merci beaucoup ! J'ai rajouté un "else" pour que cela fonctionne sur tous les sous domaines et tout semble fonctionner.

Merci encore !
Répondre à florent_mi
Discussions pertinentes trouvées dans le forum
20/05 17h31While PHP/MySQL0
23/07 11h31Php/mysql6
23/07 00h31Problème script PHP/MySQL6
22/07 23h00Problème de connexion php/mysql local11
Plus de discussions sur « [Php mysql] Problème While qui s'arrête »
Logiciels pertinents trouvés dans les téléchargements
Télécharger WAMP Server 2.0cWAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de...Catégorie: Serveurs
Licence: Freeware/gratuit
Télécharger MySQL 5.0.51bMySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. Catégorie: Bases de données
Licence: Open Source
Télécharger easyPHP 2.0b1easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données...Catégorie: Serveurs
Licence: Open Source
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Php mysql] Problème While qui s'arrête »