[resolu] Pbm d'insertion dans un <select>

Eléphanteau du PHP | 25 Messages

07 juin 2008, 19:58

Bonjour,
Je n'arrive pas afficher la liste déroulante générée par une requête SQL dans ma page.
Même en faisant un simple "echo" au même endroit ou j'insère le code php je n'ai rien.
Si je le met en début de page ou ailleurs c'est ok j'ai bien le echo.??
J'ai vérifié et je ne vois pas d'erreur de syntaxe... Si quelqu'un peu m'aider, merci.
 <form  name="RechercheParBat" method="post" action="scriptsP/RechercheParBat.php">
		<select name="RechercheParBatBat">
		<?php 
		include ("ConnectBDD.php");
		$result=mysql_query("SELECT NomZone,Batiment FROM Zone"); 
		if(!$result){
		echo "La requete Liste deroulante a echouée".mysql_error();
		exit();
		}
		//Recupération du résultat par lignes (pointeur). Recupération des valeurs des résultats en selectionnant 
		//les colonnes de résultats NomZone et batiment. Puis tant qu'il y a des lignes, provoquer l'affichage
	
		while ($ligne=mysql_fetch_array($result)) 
		{
         echo $ligne['NomZone'].'<br>'.$ligne['Batiment'];
		 //echo "<option value=\"".$ligne['Batiment']."\">".$ligne['NomZone']."</option>\n" ;
     	}
		//mysql_close($connect_serveur);        			 
  		//Libération de la variable en mémoire 
		//mysql_free_result($result);
		?>
		<!--<option value="...">Test 0</option>
		<option value="...">Test 2</option>-->
        </select>
		<input type="submit" name="RechBat" value="OK">  
		</form>
[code][/code]
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]
Modifié en dernier par romca le 07 juin 2008, 21:53, modifié 1 fois.

Eléphant du PHP | 174 Messages

07 juin 2008, 20:29

if(!$result){
echo "La requete Liste deroulante a echouée".mysql_error();
exit();
}
ton if teste l'existence de la variable $result.

Même si tu n'as aucun enregistrement elle existe.

Essaie de remplacer cette condition par celle-ci :
if(mysql_num_rows($result)==0){
        echo "La requete Liste deroulante a echouée".mysql_error();
        exit();
        } 
A mon avis tu aura un echo qui prouve que la base est vide...
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 20:44

Salut,
Merci, j'ai essayé et non c'est idem.
Mais pour moi le
if(!$result)
teste si result est False ou true. Ici si elle est "False"
L'existence de la variable est faite par isset non ?
Et j'ai utilisé la même syntaxe ailleurs et cela fonctionne.

Aurait-tu une autre idée ?
Merci.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 174 Messages

07 juin 2008, 20:46

!$variable revient à !isset($variable) d'où ma remarque.

rajoute un or die après ton mysql_query pour voir.

[EDIT] mets en comment ton premier echo et remet en normal celui contenant les balises doption...
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:02

Ok, J'ai essayé mais idem.
C'est peut être une erreur de balise je ne sais pas....
Je te mets le code ici et c'est dommage que ne peux peut pas te mettre la copie d'écran...En tout cas tout le code HTML disparait après les code PHP ??

Code : Tout sélectionner

<!--- Recherche domaine bureautique-----> <tr> <td height="73" class="CellPrincipaleTexte">Recherche par Batiment <form name="RechercheParBat" method="post" action="scriptsP/RechercheParBat.php"> <select name="RechercheParBatBat"> <?php include ("ConnectBDD.php"); $result=mysql_query("SELECT NomZone,Batiment FROM Zone") or die ("erreur de requete"); if(!$result){ echo "La requete Liste deroulante a echouée".mysql_error(); exit(); } //Recupération du résultat par lignes (pointeur). Recupération des valeurs des résultats en selectionnant //les colonnes de résultats NomZone et batiment. Puis tant qu'il y a des lignes, provoquer l'affichage while ($ligne=mysql_fetch_array($result)) { //echo $ligne['NomZone'].'<br>'.$ligne['Batiment']; echo "<option value=\"".$ligne['Batiment']."\">".$ligne['NomZone']."</option>\n" ; } //mysql_close($connect_serveur); //Libération de la variable en mémoire //mysql_free_result($result); ?> <!--<option value="...">Test 0</option> <option value="...">Test 2</option>--> </select> <input type="submit" name="RechBat" value="OK"> </form> </td> <td class="CellPrincipaleTexte" valign="top" rowspan="3">Il n'y a pas réellement de zone dans le domaine Aéroportuaire.<br><br> Chaque manager (Mrs Flament et Astorino) intervient sur toutes les zones en fonction des affaires en cours et de la charge de travail de chacun.</td> </tr> <tr> <td height="73" class="CellPrincipaleTexte">Recherche par Manager Local <form name="RechercheParML" method="post" action="scriptsP/RechercheParML.php"> <select name="RechercheML" size="1"> <option value="...">Test 1</option> <option value="...">Test 2</option> <input type="submit" name="RechBat" value="OK"> </select> </form> </td> </tr> <tr>
[/img]

Eléphant du PHP | 174 Messages

07 juin 2008, 21:10

et que te donne echo mysql_num_rows($result) ?
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:20

Toujours pareil, je te met ce que j'ai mis...
Mais regarde dans le 2ème bout de code....je n'arrive même pas à avoir un simple echo comme ci dessous dans le code ??
 <form  name="RechercheParBat" method="post" action="scriptsP/RechercheParBat.php">
		<select name="RechercheParBatBat">
		<?php echo "test PHP"; // je ne vois même pas cet echo..????
		include ("ConnectBDD.php");
		$result=mysql_query("SELECT NomZone,Batiment FROM Zone") or die ("erreur de requete"); 
		echo mysql_num_rows($result);
		if(!$result){
		echo "La requete Liste deroulante a echouée".mysql_error();
		exit();
		}
		//Recupération du résultat par lignes (pointeur). Recupération des valeurs des résultats en selectionnant 
		//les colonnes de résultats NomZone et batiment. Puis tant qu'il y a des lignes, provoquer l'affichage
		while ($ligne=mysql_fetch_array($result)) 
		{
         //echo $ligne['NomZone'].'<br>'.$ligne['Batiment'];
		 echo "<option value=\"".$ligne['Batiment']."\">".$ligne['NomZone']."</option>\n" ;
     	}
			
        //mysql_close($connect_serveur);        			 
  		//Libération de la variable en mémoire 
		//mysql_free_result($result);
		?>
		<!--<option value="...">Test 0</option>
		<option value="...">Test 2</option>-->
        </select>
		<input type="submit" name="RechBat" value="OK">  
		</form>
Le simple echo ne passe même pas
<form  name="RechercheParBat" method="post" action="scriptsP/RechercheParBat.php">
		<select name="RechercheParBatBat">
		<?php echo "test PHP"; // je ne vois même pas cet echo..????
		
		?>
		<!--<option value="...">Test 0</option>
		<option value="...">Test 2</option>-->
        </select>
		
		<input type="submit" name="RechBat" value="OK">  
		</form>

Eléphant du PHP | 174 Messages

07 juin 2008, 21:22

euh... question basique... ta page tu l'as bien appelé quelquechose.php et pas quelquechose.html ?

[EDIT] je viens de faire un test et le echo fonctionne correctement, donc je ne vois pas d'où vient ton erreur si c'est un fichier .php
Modifié en dernier par animithra le 07 juin 2008, 21:27, modifié 1 fois.
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:26

Non j'aurais pût ... c'est bien en .php
Quand je met l'echo avan le <select> je reussit à le voir :
<form  name="RechercheParBat" method="post" action="scriptsP/RechercheParBat.php">
		<?php echo "test PHP";?> 
		<select name="RechercheParBatBat">
		<?php echo "test PHP"; // je ne vois même pas cet echo..????
		include ("ConnectBDD.php");
		$result=mysql_query("SELECT No......

Eléphant du PHP | 174 Messages

07 juin 2008, 21:31

tu n'as pas changé tes paramètres de connexion ou le nom de la base ? parce que la ligne qui fait sauté le système c'est la ligne contenant le mysql_query...

[EDIT] teste directement ta requête en la copiant/collant sous phpMyadmin ou mysql et donne le résultat
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:37

Oui en effet je viens de supprimer la balise <select> et maintenant la requete me renvoie le or die "erreur de requete"
Je n'ai pourtant pas changé dans mysql de compte et la requete fonctionne bien en direct sur phpmyadmin.

Je vais chercher encore. Si t'as aussi une idée...
merci en tout cas pour ta patience.

Eléphant du PHP | 174 Messages

07 juin 2008, 21:38

dis moi ce que te retourne "describe Zone;" sous phpMyadmin
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:43

Voilà ce que j'obtiens:
Résultat de la requête SQL
Serveur: localhost
Base de données: intradeploi
Généré le : Sam 07 Juin 2008 à 21:42
Généré par: phpMyAdmin 2.11.6 / MySQL 5.0.51b-community-nt
requête SQL: describe Zone;
Enregistrements: 4

Field Type Null Key Default Extra
NumZone varchar(5) NO PRI NULL
NomZone varchar(20) NO NULL
Batiment varchar(10) NO NULL
idML smallint(1) unsigned YES MUL NULL

Eléphant du PHP | 174 Messages

07 juin 2008, 21:45

Si ta requête fonctionne et puisque ta table existe bien c'est soit que tes paramètres de connexion sont mauvais soit que ton include porte vers le mauvais fichier...

Vérifie ça ^^

[EDIT] tu inclus le fichier mais tu n'appelles aucune fonction de connexion ? es-tu donc sûr d'être connecté ?
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 25 Messages

07 juin 2008, 21:52

Super !!
Oui en effet mon include n'était pas bon... je suis dégouté tout ce temps pour ça !!!
include ("../scriptsP/ConnectBDD.php");
J'ai fait un copier coller d'un autre fichier...Ah les copiers collers!

En tout cas merci beaucoup de ton aide et de ta logique .

Cdt