Page 1 sur 1

Afficher par critère dont where a une variable

Posté : 31 mars 2010, 17:23
par dan4
Salutations!

J'ai vraiment un problème avec la relation formulaire et mon code PHP.

Explication:
nocat est le catalogue.
- ametis et zzz est une sous-catégorie de catalogue
noart est l'article
ici : est pour faire la relation avec le code php et le formulaire.

La situatoin actuelle, c'est que je ne peux pas afficher par catalogue.

Je dois pouvoir faire un choix avec un menu déroulant et que WHERE nocat puisse
prendre le contenu de la variable de GET en tenant compte que j'ai LIMIT .

[php]
?>
<form name="ici">
<select name="ici" size="1">
<option value="ametis">Ametis</option>
<option value="zzz">zzz</option>
</select>
<input type="submit" value="Envoyer">
</form>
<?php

if(!empty($_POST['ici']))
{
if( $_POST['ici'] == "ici" ) // On sélectionne tout
{
$sql = "SELECT * FROM produits ORDER BY noart ASC LIMIT $limit_start,$pagination";
}
else // Seulement une catégorie
{
$sql = "SELECT * FROM produits WHERE nocat={$_POST['ici']} ORDER BY noart ASC LIMIT $limit_start,$pagination";
}
}
else
{
$sql = "SELECT * FROM produits ORDER BY noart LIMIT $limit_start,$pagination";
}
$req = mysql_query($sql,$db) or die(mysql_error());
[/php]

Re: Afficher par critère dont where a une variable

Posté : 31 mars 2010, 18:14
par visualight
Salut,

Peut être :
if (isset ($_POST['ici']) AND !empty ($_POST['ici'])) {
$ici = $_POST['ici'];
// Le "esle" n'est pas nécessaire (juste pour te montrer que $ici peut etre un variable chargée dynamiquement par un contenu en fonction de tes formulaires
} else {
$ici = $_POST['autrechose'];
// OU
$ici = $_GET['autrechose'];
}

$sql = "SELECT * FROM produits WHERE nocat=$ici ORDER BY noart ASC LIMIT $limit_start,$pagination";

Ensuite tu as :
if(!empty($_POST['ici']))
 {
       if( $_POST['ici'] == "ici" ) // On sélectionne tout
       {
         $sql = "SELECT * FROM produits ORDER BY noart ASC LIMIT $limit_start,$pagination";
       }
       else // Seulement une catégorie
       { 
....
Moi je ferais :
if(!empty($_POST['ici']) AND $_POST['ici'] == 'ici' )
 {
         $sql = "SELECT * FROM produits ORDER BY noart ASC LIMIT $limit_start,$pagination";
       }
       else // Seulement une catégorie
       {
....