Variable "Tous" en php/MySQL
ToNf
-
alavotre -
alavotre -
Salut,
Mon problème est tout bête : je fais un formulaire de recherche dans lequel se trouve une liste déroulante dont une des valeurs est "Tous".
Dans le traitement du formulaire, je récupère la valeur de la liste déroulante et la passe via une variable dans une requête SQL (WHERE 'valeur de la colonne dans la table'='valeur provenant de la liste déroulante'). Comment je fais quand l'utilisateur choisi "Tous" ? Je suis obligé de le mettre en variable, je ne tiens pas à avoir une requête par cas, surtout que j'ai plusieurs listes déroulantes...
Merci de votre aide !
Mon problème est tout bête : je fais un formulaire de recherche dans lequel se trouve une liste déroulante dont une des valeurs est "Tous".
Dans le traitement du formulaire, je récupère la valeur de la liste déroulante et la passe via une variable dans une requête SQL (WHERE 'valeur de la colonne dans la table'='valeur provenant de la liste déroulante'). Comment je fais quand l'utilisateur choisi "Tous" ? Je suis obligé de le mettre en variable, je ne tiens pas à avoir une requête par cas, surtout que j'ai plusieurs listes déroulantes...
Merci de votre aide !
A voir également:
- Variable "Tous" en php/MySQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Variable d'environnement temp - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
7 réponses
pour le cas du "TOUS" tu devrais simplement enlever la clause "WHERE":
Select * From Table;
L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.
Select * From Table;
L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.
en faisant comme ca tu risque de ralentir un peu ton traitement sur la base SQL, alors que si tu fait un truc dans le genre:
$sql="select * from matable"; if($maVar!='Tous'){ $sql.="where col=$maVar"; }
il ne faut pas pas oublier l'espace avant WHERE!
et les quotes simples (') avant et apres $maVar si le champs est du type texte (char)
L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.
et les quotes simples (') avant et apres $maVar si le champs est du type texte (char)
$sql="select * from matable"; if($maVar!='Tous'){ $sql.=" where col='$maVar'"; }
L'erreur est humaine mais un véritable désastre
ne peut être qu'informatique.
Tu aurai aussi bien pu travail avec la fonction "Switch"!!! Je pense qu'elle serait la plus appropiée...mé bon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non, le if est plus utile dans ce cas la car on a que 2 choix:
la variable égale Tous ou non, ce qui donne
le switch est utile dans le cas ou l'on a 3 valeur distincte et que l'on serait obligé d'utilisé deux if
la variable égale Tous ou non, ce qui donne
si(var='Tous'){ ... } sinon { ... }
le switch est utile dans le cas ou l'on a 3 valeur distincte et que l'on serait obligé d'utilisé deux if
Bonjour,
j'ai fait un moteur en utilisant DW mx, et pour insérer le "Tous", c ok, sauf que pour ma page de resultat, ça bug...erreur de synaxe...
$colrubrique_rsCatalogue = "1";
if (isset($_GET['VARrubrique'])) {
$colrubrique_rsCatalogue = (get_magic_quotes_gpc()) ? $_GET['VARrubrique'] : addslashes($_GET['VARrubrique']);
}
mysql_select_db($database_connBoutsimple, $connBoutsimple);
$query_rsCatalogue = sprintf("SELECT recette.nom, recette.vin_1, FROM recette, vin WHERE recette.rubriqueid=%s AND recette.nom LIKE '%%%s%%' AND vin.id_vin=recette.vin_1", $colrubrique_rsCatalogue,$colnom_rsCatalogue);
$query_limit_rsCatalogue = sprintf("%s LIMIT %d, %d", $query_rsCatalogue, $startRow_rsCatalogue, $maxRows_rsCatalogue);
$rsCatalogue = mysql_query($query_limit_rsCatalogue, $connBoutsimple) or die(mysql_error());
$row_rsCatalogue = mysql_fetch_assoc($rsCatalogue);
et le message pour la page de resultat
Erreur de syntaxe près de '% AND recette.nom LIKE '%iran%' AND vin.id_vin=recette.vin_1 LIM' à la ligne 1
merci de m'aider c mon dernier bug ..
j'ai fait un moteur en utilisant DW mx, et pour insérer le "Tous", c ok, sauf que pour ma page de resultat, ça bug...erreur de synaxe...
$colrubrique_rsCatalogue = "1";
if (isset($_GET['VARrubrique'])) {
$colrubrique_rsCatalogue = (get_magic_quotes_gpc()) ? $_GET['VARrubrique'] : addslashes($_GET['VARrubrique']);
}
mysql_select_db($database_connBoutsimple, $connBoutsimple);
$query_rsCatalogue = sprintf("SELECT recette.nom, recette.vin_1, FROM recette, vin WHERE recette.rubriqueid=%s AND recette.nom LIKE '%%%s%%' AND vin.id_vin=recette.vin_1", $colrubrique_rsCatalogue,$colnom_rsCatalogue);
$query_limit_rsCatalogue = sprintf("%s LIMIT %d, %d", $query_rsCatalogue, $startRow_rsCatalogue, $maxRows_rsCatalogue);
$rsCatalogue = mysql_query($query_limit_rsCatalogue, $connBoutsimple) or die(mysql_error());
$row_rsCatalogue = mysql_fetch_assoc($rsCatalogue);
et le message pour la page de resultat
Erreur de syntaxe près de '% AND recette.nom LIKE '%iran%' AND vin.id_vin=recette.vin_1 LIM' à la ligne 1
merci de m'aider c mon dernier bug ..
Mais j'ai trouvé la solution, je fais un test avant la requête. Si la variable a pris la valeur "tous" dans la liste déroulante, je dis que cette variable est égal à"%" dans la requête, sinon elle garde sa valeur prise dans la liste déroulante. Ca marche comme ça !