menus déroulants dépendants
Hors ligneDaporoty Le 31/07/2009 à 10:08 Profil de Daporoty Configuration de Daporoty

Bonjour,

Je suis novice en php mais j'ai quand même essayé de faire une page de trie pour afficher des données de ma base mysql.
Le trie se fait grace à 2 menus déroulants dont le contenu du second dépend de la sélection dans le premier.
A l'exécution du script j'ai le message d'erreur :

mysql_fetch_array(): supplied argument is not a valid MySQL result resource in recherche.php on line 30
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in recherche.php on line 57

Si quelqu'un peut m'expliquer où est l'erreur dans mon script, merci par avance.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>RECHERCHES</title>
<meta name="author" content="" />
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-Language" content="fr" />
<meta name="keywords" lang="fr" content="" />
<link rel="stylesheet" media="screen" type="text/css" title="style" href="css/style.css" />
<script type="text/javascript" src=""></script>
</head> 

<body>

<?php
include('connection.php');
echo 
'<form id="choixpays" method="post" action="result.php">';
$rq1 "SELECT DISTINCT pays FROM vae ORDER BY lot ASC";
$donnees1 mysql_query($rq1) or die(mysql_error());
$selected 0;
?>

<select name="pays" id="pays" onchange="document.forms('choixpays').submit()">

<?php
echo '<option disabled="disabled" SELECTED>- Pays -</option>';
while (
$row mysql_fetch_array($donnees))
     {
     if($Selected == 0)
          {
          echo '<option value="'.$row[0].'">'.$row[0].'</option>';
          $Selected 1;
          }
     else
          
{
          echo '<option value="'.$row[0].'">'.$row[0].'</option>';
          }
     }
echo 
'</select></form>';
if (isset (
$_POST['regime']))
     {
     $regime $_POST['regime'];
     echo '<form id="choixregime" method="post" action="result.php">';
     $rq2 "SELECT pays, regime FROM vae WHERE pays='".$pays."'";
     $donnees2 mysql_query($rq2) or die(mysql_error());
     }
?>

<select name="regime" id="regime" onchange="document.forms('choixregime').submit()">

<?php
$Selected 
0;
echo 
'<option disabled="disabled" SELECTED>- Régime -</option>';
while (
$row mysql_fetch_array($donnees2))
     {
     if($Selected == 0)
          {
          echo '<option value="'.$row[1].'">'.$row[1].'</option>';
          $Selected 1;
          }
     else
          
{
          echo '<option value="'.$row[1].'">'.$row[1].'</option>';
          }
     }
echo 
'</select><input type="submit" value="Recherche"></form>';
mysql_close();
?>

</body>
</html>
Hors ligneTaffeur95 Le 31/07/2009 à 13:38 Profil de Taffeur95 Configuration de Taffeur95

Salut,

à la construction de tes listes, tu donnes comme argument à la fonction mysql_fetch_array des noms de requêtes qui n'existent pas, donc il ne peut pas te sortir de tableau ;)
Hors ligneDaporoty Le 31/07/2009 à 14:16 Profil de Daporoty Configuration de Daporoty

Bonjour,
Merci pour cette réponse, cependant pourrais tu me détailler le problème car je ne suis pas sur de bien comprendre.
Amicalement.
Hors ligneTaffeur95 Le 02/08/2009 à 21:30 Profil de Taffeur95 Configuration de Taffeur95

Salut,

tu récupères le résultat de ta requête dans la variable $donnees1 et tu essaies de parcourir ce tableau en faisant
($row = mysql_fetch_array($donnees) au lieu de ($row = mysql_fetch_array($donnees1)
alors forcément, il n'y a aucune ligne à lire...

et puis fais attention que ton fichier connection.php ne contienne que tes paramètres de connexion et non pas une fonction qui sert à te connecter.

et ta $rq2 n'est pas correcte car a priori ta variable $pays est vide et tu dois écrire
$rq2 = "SELECT pays, regime FROM vae WHERE `pays`='$pays' ";
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels