"Injecter" OR ou AND via php

Répondre
SuperTalon
le 24/03/2009 à 12:38
SuperTalon
Bonjour,

Bon ma petite base avance, j'ai une question metaphysique ; est ce qu'on peut changer AND par OR via un formulaire ? Si oui quelle est la meilleure option (liste déroulante, bouton, etc.?)

Merci d'avance
LA GLOBULE
le 24/03/2009 à 13:28
LA GLOBULE
Changer AND par OR ? Dans une requete SQL tu veux dire ?

Oui, tu peux utiliser un radio ou un select pour cela.
SuperTalon
le 24/03/2009 à 15:53
SuperTalon
Heu oui c?est ça, dans une requête SQL, changer le AND par OR et inversement, mais par le biais de mes pages html, donc en langage php quoi. En fait ce que je comprends c?est que dans une requête
- les tables, les champs sont variables
- les choses comme SELECT, FROM, WHERE, AND, OR, etc sont fixes.
- Mais quelque chose me dit qu?on peut les bidouiller, j?ignore comment.

Pour l?instant j?en suis à cette solution :

Un bouton on/off provoque :
une condition « if » boutons coché
alors : SELECT * FROM table WHERE champ1=condition-x AND champ2=condition-y
sinon : SELECT * FROM table WHERE champ1=condition-x OR champ2=condition-y

? mais j?ai cru comprendre une autre syntaxe qui permettait de rendre « variable » une partie de la requête ; c?est déclenché par le formulaire, je comprends la finalité, mais c?est le milieu qui me manque?

Exemple :
SELECT * FROM societe WHERE societe_secteur = "nord" .$letrucquiremplaceANDouOR. societe_statut =?client?

Pourriez vous m?expliquer le cheminement pour aboutir à ça SVP ? Un petit exemple serait encore mieux ;-)
LA GLOBULE
le 24/03/2009 à 15:58
LA GLOBULE
Ben dans ton formulaire, tu peux faire deux radio qui prendront le nom de 'tri', un qui prend la valeur de AND et l'autre la valeur de OR.

Et dans la page qui va lancer la requete, tu fais un truc de ce genre :

<?php
if (!isset($_POST['tri']) || ($_POST['tri'] != 'AND' && $_POST['tri'] != 'OR')) $_POST['tri'] = 'AND';

$sql = "SELECT ... FROM ... WHERE champs1 = 'toto' ".$_POST['tri']." champs2 = 'titi'";
?>
SuperTalon
le 24/03/2009 à 17:08
SuperTalon
Ok super, c'est plus lisible que les scripts complet. ça a un nom la manipulation de la ligne 2 ?

Merci encore
LA GLOBULE
le 24/03/2009 à 19:12
LA GLOBULE
Heu non, pas spécialement. C'est juste un test qui teste que tu ne reçois pas du caca que tu vas injecter dans ta requête SQL.
SuperTalon
le 24/03/2009 à 22:37
SuperTalon
Merci.

C'est bien fun ce langage, dès que tu ouvres une porte tu tombes sur 10 tiroirs...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours