Page 1 sur 1
[resolu] Pbm d'insertion dans un <select>
Posté : 07 juin 2008, 19:58
par romca
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]
Posté : 07 juin 2008, 20:29
par animithra
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...
Idem
Posté : 07 juin 2008, 20:44
par romca
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]
Posté : 07 juin 2008, 20:46
par animithra
!$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...
Encore idem
Posté : 07 juin 2008, 21:02
par romca
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]
Posté : 07 juin 2008, 21:10
par animithra
et que te donne echo mysql_num_rows($result) ?
idem
Posté : 07 juin 2008, 21:20
par romca
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>
Posté : 07 juin 2008, 21:22
par animithra
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
Posté : 07 juin 2008, 21:26
par romca
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......
Posté : 07 juin 2008, 21:31
par animithra
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
Posté : 07 juin 2008, 21:37
par romca
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.
Posté : 07 juin 2008, 21:38
par animithra
dis moi ce que te retourne "describe Zone;" sous phpMyadmin
Posté : 07 juin 2008, 21:43
par romca
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
Posté : 07 juin 2008, 21:45
par animithra
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é ?
Resolu
Posté : 07 juin 2008, 21:52
par romca
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