Menu deroulant dynamique

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 : Menu deroulant dynamique

par Darkbibou » 02 mars 2006, 13:20

Avec le dernier code que vous m'avez donné tout semble fonctionner correctement :D

Merci beaucoup

par Darkbibou » 02 mars 2006, 12:56

Je change mon code et je fait des test :)

par charabia » 02 mars 2006, 12:49

Ah oué pas mal d'apprendre ça :) Darkbidou tu pourras nous confirmer tout ça ?

Sinon pour ton problème tu peux utiliser la fonction mysql_num_rows en plus :
$compte = mysql_num_rows($resultat_sql_select_tri2);

if($compte>0) {
	while($aff_select_tri2 = mysql_fetch_row($resultat_sql_select_tri2)) {
	//ton code
	}
}
else {
	echo "aucun résultat";
}

par Hermès » 02 mars 2006, 12:47

Je crois que Kookiz a raison, lorsque tu fais le test pour savoir s'il y a un résultat et qu'il y en a effectivement un, tu vas perdre la première ligne de résultat vu que tu vas enchaîner un mysql_fetch_row (pour le test) avec le mysql_fetch_row de la boucle.

par charabia » 02 mars 2006, 12:39

Mmmhhh je ne suis pas tout. Quels résultats ne sont pas affichés ?

Tu n'as pas oublié une accolade quelque part ?

par KooKiz » 02 mars 2006, 12:38

Si je ne m'abuse :
if (!mysql_fetch_row($resultat_sql_select_tri2)) {

echo "Aucun enregitrement";

}

else {

	while($aff_select_tri2 = mysql_fetch_row($resultat_sql_select_tri2)){
	//ton code
	}

}
On perd un résultat lors du premier test avec mysql_fetch_row non ? Il faudrait plutôt faire quelque chose comme :
if (mysql_num_rows($resultat_sql_select_tri2) == 0) {

echo "Aucun enregitrement";

}

else {

	while($aff_select_tri2 = mysql_fetch_row($resultat_sql_select_tri2)){
	//ton code
	}

}

par Darkbibou » 02 mars 2006, 12:35

Cela regle bien certain cas où il n'y avait aucun résultat neanmoins si je fait a ta méthode certains résultats qui existe ne sont jamais affichés.

Je suis sure de la requête executée car elle donne des résultat dans phpmyadmin.

Je me demande pourquoi bien qu'il rentre dans le else de ton if le contenu du while n'est pas affiché :(

par Darkbibou » 02 mars 2006, 12:01

Merci je vais essayer :D

par charabia » 02 mars 2006, 11:56

Il ne faut pas que tu l'intègres dans la boucle :
if (!mysql_fetch_row($resultat_sql_select_tri2)) {

echo "Aucun enregitrement";

}

else {

	while($aff_select_tri2 = mysql_fetch_row($resultat_sql_select_tri2)){
	//ton code
	}

}

Menu deroulant dynamique

par Darkbibou » 02 mars 2006, 11:40

Bonjour a tous :)

J'ai créé un menu déroulant se remplissant à partir des données d'une base MySQL à l'aide de requête spécifique générée de manière automatique.

Mon problème réside dans le traitement du cas ou ma requête de sélection ne trouve rien. J'aimerai que le menu déroulant présente quand même un choix "No results". J'ai essayé comme ceci mais cela ne donne rien :(

Quelqu'un aurait une solution à me proposer ?
<?php	
							
//connexion au SGBD:
$connexion2= mysql_connect('localhost','root','')or die('Connexion au serveur impossible');
// selection de la base à remplir:	
mysql_select_db("triannot_link")or die("Impossible de se connecter à la base de données");
								
$resultat_sql_select_tri2= mysql_query($sql_select_tri2);
								
echo "<select name='tri_2'>";
																						
while($aff_select_tri2 = mysql_fetch_row($resultat_sql_select_tri2)){ 
								
	if(!$aff_select_tri2){
								
	       echo "<option value='No_data'>No results</option>";
									
	}else{
										
		echo"<option>".$aff_select_tri2[0]."</option>";	
										
	}
								
}
							
echo "</select>";

....
Merci d'avance