Daporoty |
Le 31/07/2009 Ã 10:08 |
|
|
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>
|
Taffeur95 |
Le 31/07/2009 Ã 13:38 |
|

|
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 ;) |
Daporoty |
Le 31/07/2009 Ã 14:16 |
|
|
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. |
Taffeur95 |
Le 02/08/2009 Ã 21:30 |
|

|
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' "; |