Bonjour à tous ,

Je viens de mettre le script suivant dans ma page PHP afin d'avoir 2 listes liées.

J'ai mis ceci avant <!DOCTYPE html PUBLIC...

<?php

/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "centphzuone";

$idr = isset($_POST['libelle'])?$_POST['libelle']:null;
?>

et ceci dans le <Body >

<?php

if(isset($_POST['ok']) && isset($_POST['libel']) && $_POST['libel'] != "")

{

$region_selectionnee = $_POST['libelle'];

$dept_selectionne = $_POST['libel'];

?>

<p>Vous avez sélectionné le département <?php echo($dept_selectionne); ?> dans la région <?php echo($region_selectionnee); ?></p>

<?php

}

?>

<h3>Trouver un département</h3>

<?php

/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()

* car on aura besoin de la connexion un peu plus loin dans le script */

$connexion = mysql_pconnect($serveur, $admin, $mdp);

if($connexion != false)

{

$choixbase = mysql_select_db($base, $connexion);

$sql1 = "SELECT `id`, `libelle`".
" FROM `shop_categories`".
" ORDER BY `id`";

$rech_regions = mysql_query($sql1);

$code_region = array();

$region = array();

/* On active un compteur pour les régions */

$nb_regions = 0;

if($rech_regions != false)

{

while($ligne = mysql_fetch_assoc($rech_regions))

{

array_push($code_region, $ligne['id']);

array_push($region, $ligne['libelle']);



/* On incrémente de compteur */

$nb_regions++;

}

}

?>

<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">

<fieldset style="border: 3px double #333399">

<legend>Sélectionnez une région</legend>

<select name="libelle" id="libelle" onchange="document.forms['chgdept'].submit();">

<option value="-1">- - - Choisissez une région - - -</option>

<?php

for($i = 0; $i < $nb_regions; $i++)

{

?>

<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>

<?php

}

?>

</select>

<?php

mysql_free_result($rech_regions);

/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */



if(isset($idr) && $idr != -1)

{

/* Cération de la requête pour avoir les départements de cette région */

$sql2 = "SELECT `shop_s_categorie.id`, `shop_s_categorie.libel`".
" FROM `shop_s_categorie`".
" WHERE `shop_s_categorie.grandpere` = ". $idr ."".
" ORDER BY `shop_s_categorie.id`;";

if($connexion != false)

{

$rech_dept = mysql_query($sql2, $connexion);

/* Un petit compteur pour les départements */

$nd = 0;

/* On crée deux tableaux pour les numéros et les noms des départements */

$code_dept = array();

$nom_dept = array();

/* On va mettre les numéros et noms des départements dans les deux tableaux */

while($ligne_dept = mysql_fetch_assoc($rech_dept))

{

array_push($code_dept, $ligne_dept['id']);

array_push($nom_dept, $ligne_dept['libel']);

$nd++;

}

/* Maintenant on peut construire la liste déroulante */

?>

<select name="libel" id="libel">

<?php

for($d = 0; $d<$nd; $d++)

{

?>

<option value="<?php echo($code_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>

<?php

}

?>

</select>

<?php

}

/* Un petit coup de balai */

mysql_free_result($rech_dept);

}

?>

<br /><input type="submit" name="ok" id="ok" value="Envoyer" />

</fieldset>

</form>

<?php

/* Terminé, on ferme la connexion */

mysql_close($connexion);

}


else

{

/* Si on arrive là, c'est pas bon signe, il faut vérifier les

* paramètres de connexion, mot de passe, serveur pas démarré etc... */

?>

<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>

<?php

}

?>


L'affichage est "normal" , mais quand je sélectionne un nom dans la première liste , j'ai ce message :


Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\1cent\Templates\vente7005.php on line 870



Call Stack



#

Time

Memory

Function

Location



1

0.0049

588768

{main}( )

..\vente7005.php:0



2

0.0875

682712

mysql_fetch_assoc ( )

..\vente7005.php:870





( ! ) Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\1cent\Templates\vente7005.php on line 912



Call Stack



#

Time

Memory

Function

Location



1

0.0049

588768

{main}( )

..\vente7005.php:0



2

0.0879

683048

mysql_free_result ( )

..\vente7005.php:912

où la ligne 870 est :

while($ligne_dept = mysql_fetch_assoc($rech_dept))

et la ligne 912 est :

mysql_free_result($rech_dept);




Merci d'avance pour vos réponses .

HAbroc