par
oranjules » 31 août 2010, 19:26
bon j'ai encore un problème que je trouve... étrange :p (mais cette fois, aucun rapport avec SQL)
J'ai voulu créer un menu d'options pour pouvoir afficher uniquement les produits en sous-nombre. Je me sers donc de variables de session (pour pouvoir naviguer entre les pages). Voila la page du menu d'option :
<?php
include("menu.php");
if (isset($_POST['option']))
{
$_SESSION['option'] = $_POST['option'];
echo 'Changement effectué !';
echo $_SESSION['option'];
}
?>
<h4>Tout afficher sur la liste de produits ?</h4>
<form method="post">
<select name="option" id="option">
<option value="tout">Tout afficher</option>
<option value="sous_nombre">Afficher seulement les produits en sous-nombre</option>
</select>
<input type="submit" value="Changer">
</form>
Avec le echo $_SESSION['option'], je vois que la variable a bien changé (notamment quand elle prend pour valeur "tout", c'est la que se pose le problème).
Voila les lignes que j'ai rajoutées dans la page de liste :
if (isset($_SESSION['option']) AND $_SESSION['option'] = 'sous_nombre')
{
$reponse = $bdd->query('SELECT * FROM inventaire WHERE nombre_restant <= seuil ORDER BY nombre_restant') or die(print_r($bdd->errorInfo())); // Ici, on réagit en fonction du réglage : soit on affiche tout, soit on affiche seulement les produits en sous-nombre
echo $_SESSION['option'];}
else
{
$reponse = $bdd->query('SELECT * FROM inventaire ORDER BY nombre_restant') or die(print_r($bdd->errorInfo()));
}
Et
if (isset($_SESSION['option']) AND $_SESSION['option'] = 'sous_nombre')
{
$reponse_fournisseur = $bdd->prepare('SELECT produit, nombre_restant, seuil, fournisseur FROM inventaire WHERE fournisseur = :fournisseur AND nombre_restant <= seuil ORDER BY nombre_restant');
} // Ici, on fait comme ligne 31-38 : on réagit selon le réglage
else
{
$reponse_fournisseur = $bdd->prepare('SELECT produit, nombre_restant, seuil, fournisseur FROM inventaire WHERE fournisseur = :fournisseur ORDER BY nombre_restant');
}
A la place des requetes situées dans le "else". Dans la première requete, j'ai encore mis un echo $_SESSION['option'] mais si la condition est vraie. Et la, je vois marqué (en plus de la liste vide) : sous_nombre
la variable a changé de valeur en cours de route ! D'ou vient le problème ? Merci.
PS : j'ai bien activé session_start() sur chaque page
bon j'ai encore un problème que je trouve... étrange :p (mais cette fois, aucun rapport avec SQL)
J'ai voulu créer un menu d'options pour pouvoir afficher uniquement les produits en sous-nombre. Je me sers donc de variables de session (pour pouvoir naviguer entre les pages). Voila la page du menu d'option :
[php]<?php
include("menu.php");
if (isset($_POST['option']))
{
$_SESSION['option'] = $_POST['option'];
echo 'Changement effectué !';
echo $_SESSION['option'];
}
?>
<h4>Tout afficher sur la liste de produits ?</h4>
<form method="post">
<select name="option" id="option">
<option value="tout">Tout afficher</option>
<option value="sous_nombre">Afficher seulement les produits en sous-nombre</option>
</select>
<input type="submit" value="Changer">
</form>[/php]
Avec le echo $_SESSION['option'], je vois que la variable a bien changé (notamment quand elle prend pour valeur "tout", c'est la que se pose le problème).
Voila les lignes que j'ai rajoutées dans la page de liste :
[php]if (isset($_SESSION['option']) AND $_SESSION['option'] = 'sous_nombre')
{
$reponse = $bdd->query('SELECT * FROM inventaire WHERE nombre_restant <= seuil ORDER BY nombre_restant') or die(print_r($bdd->errorInfo())); // Ici, on réagit en fonction du réglage : soit on affiche tout, soit on affiche seulement les produits en sous-nombre
echo $_SESSION['option'];}
else
{
$reponse = $bdd->query('SELECT * FROM inventaire ORDER BY nombre_restant') or die(print_r($bdd->errorInfo()));
}[/php]
Et
[php]if (isset($_SESSION['option']) AND $_SESSION['option'] = 'sous_nombre')
{
$reponse_fournisseur = $bdd->prepare('SELECT produit, nombre_restant, seuil, fournisseur FROM inventaire WHERE fournisseur = :fournisseur AND nombre_restant <= seuil ORDER BY nombre_restant');
} // Ici, on fait comme ligne 31-38 : on réagit selon le réglage
else
{
$reponse_fournisseur = $bdd->prepare('SELECT produit, nombre_restant, seuil, fournisseur FROM inventaire WHERE fournisseur = :fournisseur ORDER BY nombre_restant');
}[/php]
A la place des requetes situées dans le "else". Dans la première requete, j'ai encore mis un echo $_SESSION['option'] mais si la condition est vraie. Et la, je vois marqué (en plus de la liste vide) : sous_nombre :shock:
la variable a changé de valeur en cours de route ! D'ou vient le problème ? Merci.
PS : j'ai bien activé session_start() sur chaque page