Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Donc t'es pas en php mais dans php les requetes que j'utilise ont la syntaxe sql
Hors ligne
oui. Je ne suis pas en php mais comme sous access j'utilise entre autre le langage SQL je vais essayer de voir si je peux t'aider..
C'est quoi ton projet exactement? Quelles sont tes tables?...etc
Hors ligne
c'est un logiciel libre php?
Hors ligne
oui easy php est libre.
En fait y a déjà deux discussions de mes problemes sur ce forum, t'as qu'a aller voir pendant que je t'explique autre chose dans un autre message
Hors ligne
en fait j'ai une base avec quatre tables dont une table de jointure.
je dois faire l'interface de requete multi-criteres pour l'utilisateur et un de mes problèmes principaux est que j'ai 5 menus déroulants qui correspondent chacun à un champ d'une même table pour choisir les criteres et comme je veux que l'utilisateur ne soit pas obligé de choisir tous les criteres, j'ai dans chaque menu une sélection 'indifferent" qui regroupe en fait toutes les entrées du champ auquel ce menu correspond. En gros, si l'utilisateur veut toute la base, il suffit qu'il sélectionne indifférent partout.
Seulement malgré tous mes efforts, sur ce choix indifferent j'obtiens toujours 0 resultat!
Hors ligne
oui je les ai regardé rapidement.
Je vais allez voir mais je pense que le langage va être différent, j'ai été voir sur php france pour me renseigner.
Je t'explique rapidemment ce que j'ai fait pour qu'on voit si ca ressemble un peu a ton boulot:
Ma base de données est composée de plusieurs tables dont les clients, les activités, les secteurs...
Sous access, j'ai créé des formulaires et des états pour présenter mes fiches clients.
Donc l'utilisateur peut remplir soit les fiches soit les tables.
Ensuite j'ai créé un formulaire de recherche au démarrage.
C'est ici que ca peut t'intéresser car sur ce formulaire j'ai créé des listes déroulantes et autres zones de textes qui servent à trier les fiches ou les données de la table grâce à une recherche multicritères.
Pour ça je me sert de macro et d'une requête SQL qui me permet de trier suivant le nom du client et/ou l'activité, et/ou le secteur....
Hors ligne
es tu oblig de mettre indifférent dans les listes ou est ce que tu peux laisser un espace blanc?
Hors ligne
ben ouais je suis obligée pour que les gens comprennent qu'ils ne sont pas obligés de choisir, qu'ils peuvent tout avoir, par exemple j'ai le choix sexe: feminin pour avoir toutes les femmes, masculin pour avoir tous les hommes et indifferent pour avoir les hommes et les femmestu comprends?
et en fait j'y arrive pour chaque menu en faisant une requete par menu mais j'ai une requete finale qui regroupe tous les criteres et là ca fonctionne plus!
c'est compliqué.
Hors ligne
SELECT REFERENCES.* FROM [REFERENCES] WHERE (REFERENCES!Secteur=Formulaires!demarrage!Modifiable25 Or Formulaires!demarrage!Modifiable25 Is Null) And (REFERENCES!Construction=Formulaires!demarrage!Modifiable28 Or Formulaires!demarrage!Modifiable28 Is Null) And (Formulaires!demarrage!Modifiable31 Is Null Or REFERENCES!Activité Like "*" & Formulaires!demarrage!Modifiable31 & "*") And (Formulaires!demarrage!Texte53 Is Null Or REFERENCES!Détails Like "*" & Formulaires!demarrage!Texte53 & "*") And (REFERENCES!Réalisé_par=Formulaires!demarrage!Modifiable62 Or Formulaires!demarrage!Modifiable62 Is Null) And (Formulaires!demarrage!Texte56 Is Null Or REFERENCES!Réalisé_à Like "*" & Formulaires!demarrage!Texte56 & "*") And (REFERENCES!DPT=Formulaires!demarrage!Modifiable76 Or Formulaires!demarrage!Modifiable76 Is Null) And (REFERENCES!Maitredouvrage=Formulaires!demarrage!Modifiable82 Or Formulaires!demarrage!Modifiable82 Is Null) And ((REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES] WHERE (((REFERENCES.Année)<=Year(Date()) And (REFERENCES.Année)>=Year(Date())-5))) And Formulaires!demarrage!Liste64="< à 5 ans") Or (REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES] WHERE (((REFERENCES.Année)<=Year(Date()) And (REFERENCES.Année)>=Year(Date())-10)) ) And Formulaires!demarrage!Liste64="< à 10 ans") Or (REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES] WHERE (((REFERENCES.Année)<=Year(Date()) And (REFERENCES.Année)>=Year(Date())-3))) And Formulaires!demarrage!Liste64="< à 3 ans") Or Formulaires!demarrage!Liste64 Is Null);
Tu vois ça c'est ma requête et la ligne suivante..
Or (REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES] WHERE (((REFERENCES.Année)<=Year(Date()) And (REFERENCES.Année)>=Year(Date())-3))) And Formulaires!demarrage!Liste64="< à 3 ans")
..correspond en fait à une liste de choix ou les possibilités sont < à 3 ans, < à 5 ans, < à 10 ans. Seulement je ne pouvais pas trier mes données en exigeant que ce que j'avais selectionné dans la liste (< à 3 ans) soit égal aux données de ma table puisque ce sont des dates type 1982 2001 ...
Alors j'ai associé deux conditions: que cela sélectionne toutes mes références comprise entre 0 et 3 ans et que la case "< à 3 ans " soit sélectionné dans la liste. Donc la liste n'est pas directemment liée à ma table.
Il faudrait peut être que tu mettes que indifférent doit être selectionné et que cela te sélectionne toutes tes données. dans lma requête ca donnerai plus ça:
...Or (REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES]) And Formulaires!demarrage!Liste64="< à 3 ans")
ma table c'est REFERENCES et liste 64 c'est la liste.
Je sais pas si ça va t'aider, si c'est compréhensible ou si ca n'a rien à voir...
Hors ligne
ouh lala faut que je medite tout ca!
voilà un bout de mon probleme plus clair:
<!--mon menu deroulant qui est dans un formulaire-->
<select name="couleur">
<option value="indifferent">indifferent</option>
<option value="rouge">rouge</option>
<option value="vert">vert</option>
<?
//mes requetes
$sqlC="SELECT couleur FROM table";
$couleur=$_POST['couleur'];
switch
{case 'rouge':
$sqlC="SELECT couleur FROM table WHERE couleur='rouge'";break;
case 'vert':
$sqlC="SELECT couleur FROM table WHERE couleur='vert'";break;
default:
$sqlC=$sqlC;break;
}
$queryC=mysql_query($sqlC);
//jusque la si je demande l'affichage des resultats ici les 3 cas fonctionnent
$requete="SELECT couleur FROM table WHERE couleur='$queryC'";
$resultat=mysql_query($requete);
//là si je demande l'affichage, j'obtiens 0 resultat pour les trois casps: tu es prié d'utiliser les balises de début et fin de code stp!!![]()
Hors ligne
j'ai oublié le "Or Formulaires!demarrage!Liste64 Is Null);" ![]()
donc c plus ça jpense:
Or (REFERENCES!Année In (SELECT REFERENCES.Année FROM [REFERENCES]
And Formulaires!demarrage!Liste64="< à 3 ans")Or Formulaires!demarrage!Liste64 Is Null);
Hors ligne
je comprends peut-être pourquoi tu me demandais si je pouvais pas mettre un blanc, ca correspond à IS nULL, non ?
Hors ligne
dsl pour les balises je savais pas
Hors ligne
c'est pas grave!!!je te le dis juste car j'ai bien appris ma leçon!
Hors ligne
mais tu as vu nos langages sont différents donc ça va être tendu a mon avis.je t'enverrai quand même ma base pour que tu vois..
Hors ligne