Affichage avec un WHERE

Bonjour,
J'ai besoin d'un peu de votre temps et de toute votre gnetillesse pour résoudre ce souci :)

voici mon code en détail(ne prenez pas peur^^)

//début du code et affichage du select avec liste déroulante//

Choisissez le type de matériel que vous désirez : <select id="listetype" name="typeprod">
<option value="defaut">--Choisissez le type--</option>

<?php

mysql_connect("localhost","root","") or die("Erreur de connexion sur mysql.");
mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");
$req1 = mysql_query("SELECT nomtype FROM typeprod");

while($ligne=mysql_fetch_assoc($req1))
echo '<option value="'.$ligne['nomtype'].'">'.$ligne['nomtype'].'</option>';

mysql_close();

?>

</select> <input type=submit name=valider value=ok>

//fin de l'affichage du select//

//début de la requête permettant d'afficher les produits du type selectionnés//
<?php
//connexion à mysql
mysql_connect("localhost", "root", "") or die ("Erreur de connexion sur mysql.");
mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");

$type=$_POST['typeprod'];
$req2=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype FROM produit where nomtype='$type' order by numprod");

?>
<?php
echo "<p align=center><table border=1><tr><TH align='center'>NumProd</TH><TH align='center'>NomProd</TH>
<TH align='center'>PrixProd</TH><TH align='center'>DuréeGarantie</TH>
<TH align='center'>NomType</TH></tr><tr>" ; ?>

<?php
while($donnees=mysql_fetch_assoc($req2))

{
?>

<td><?php echo $donnees['numprod'];?></td>
<td><?php echo $donnees['nomprod'];?></td>
<td><?php echo $donnees['prixprod']."euros"; ?></td>
<td><?php echo $donnees['duréegarantie']."ans"; ?></td>
<td><?php echo $donnees['nomtype']; ?></td></tr></p><br />

<?php
}

mysql_close(); // Déconnexion de MySQL
?>

//fin du code//
Configuration: Windows XP Internet Explorer 6.0

9 réponses

  1. OK, mais quel est ton soucis?

    Tu ne le mentionne pas...
    0
    1. Je veux qu'en choisissant un nom de type dans ma liste déroulante, lorsque j'appuis sur le bouton "OK", cela affiche tout les produit de ma base de donnée dont le nom de type et le meme que celui choisi dans ma liste déroulante.
      0
      1. ok, essaye ça: Attention à ne pas oublier la } en bas...

        
        <form name="toto" action="?action=afficher" method="post">
        <select name="type">
        <?php
        
        mysql_connect("localhost","root","") or die("Erreur de connexion sur mysql.");
        mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");
        $req1 = mysql_query("SELECT nomtype FROM typeprod");
        
        
        while($ligne=mysql_fetch_assoc($req1))
        echo '<option value="'.$ligne['nomtype'].'">'.$ligne['nomtype'].'</option>';
        
        mysql_close();
        
        ?>
        
        </select> <input type=submit name=valider value=ok>
        </form>
        
        //fin de l'affichage du select//
        
        //début de la requête permettant d'afficher les produits du type selectionnés//
        <?php
        if ((isset ($_GET['action']))&&($_GET['action']=='afficher')){
        //connexion à mysql
        mysql_connect("localhost", "root", "") or die ("Erreur de connexion sur mysql.");
        mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");
        
        $type=$_POST['typeprod'];
        $req2=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype FROM produit where nomtype='.$_POST['type'].' order by numprod");
        
        ?>
        <?php
        echo "<p align=center><table border=1><tr><TH align='center'>NumProd</TH><TH align='center'>NomProd</TH>
        <TH align='center'>PrixProd</TH><TH align='center'>DuréeGarantie</TH>
        <TH align='center'>NomType</TH></tr><tr>" ; ?>
        
        <?php
        while($donnees=mysql_fetch_assoc($req2))
        
        {
        ?>
        
        
        <td><?php echo $donnees['numprod'];?></td>
        <td><?php echo $donnees['nomprod'];?></td>
        <td><?php echo $donnees['prixprod']."euros"; ?></td>
        <td><?php echo $donnees['duréegarantie']."ans"; ?></td>
        <td><?php echo $donnees['nomtype']; ?></td></tr></p><br />
        
        <?php
        }
        }
        mysql_close(); // Déconnexion de MySQL
        ?> 
        
        0
        1. Merci bien, voici l'erreur renvoyé : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\tests\composants.php on line 114

          la ligne ou il y a ce porbleme : $req2=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype FROM produit where nomtype='.$_POST['type'].' order by numprod");

          je vois pas trop la .
          0
          1. Pardon... ;)

            c'était des " et pas des ':

            $req2=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype FROM produit where nomtype=".$_POST['type']." order by numprod");
            0
            1. -Ah oui ça affiche la liste déroulante mais une nouvelle erreur apparaît.

              Warning: mysql_close(): no MySQL-Link resource supplied in C:\wamp\www\tests\composants.php on line 138

              ligne 138: mysql_close(); // Déconnexion de MySQL

              -Et lorsque j'appuis sur "ok" après avoir sélectionné un type : Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\composants.php on line 123

              ligne 123 : while($donnees=mysql_fetch_assoc($req2))

              si tu peux m'aider encore un peu plizz :D
              0
              1. ligne 123 : while($donnees=mysql_fetch_assoc($req2))
                => ligne 123 : while($donnees=mysql_fetch_array($req2))

                while($ligne=mysql_fetch_assoc($req1))
                echo '<option value="'.$ligne['nomtype'].'">'.$ligne['nomtype'].'</option>';

                mysql_close();

                vire ce mysql_close
                0
                1. l'erreur de la ligne 123 reste , l'autre a disparu:

                  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\composants.php on line 123

                  ligne 123: while($donnees=mysql_fetch_array($req2))

                  merci pour ton aide au passage ;)
                  0
                  1. Essaye:

                    $linkdb = mysql_connect("localhost", "root", "") or die ("Erreur de connexion sur mysql.");
                    mysql_select_db("see-inf") or die ("Erreur de connexion sur la base.");

                    $type=$_POST['typeprod'];
                    $req2=mysql_query("SELECT numprod, nomprod, prixprod, duréegarantie, nomtype FROM produit WHERE nomtype=".$_POST['type']." ORDER BY numprod", $linkdb);

                    il faut aussi que tu vérifies ta requete...
                    0