select_condition

Répondre
sonia
le 17/02/2005 à 19:36
sonia
salut tout le monde;
j' ai un petit probleme :
en fet se que je souhaiterais faire c' est mettre dans ma page .php un formulaire de recherche de date qui permettra a l'utilisateur dans un premiers tant de selectionner un 'critere/intevalle' ex: '1 mois','1 semaine','1 ans','6 mois' et ensuite de saisir la date dans un champ text.
voici mon code html
<TD align="left" nowrap>RECHERCHER TOUTES LES RELANCES </TD>
<TD align="left" nowrap><SELECT name="critere">
<OPTION value="cr1">1 semaine</OPTION>
<OPTION value="cr2">2 semaines</OPTION>
<OPTION value="cr2">1 mois</OPTION>
<OPTION value="cr3">6 mois</OPTION>
<OPTION value="cr4">1 an</OPTION>

</SELECT>
<TD align="left" nowrap>A PARTIR DU</TD>
<TD align="left" nowrap>
<INPUT type="text" class="texte" name="rech_txt" value="">
</TD>

mon probleme et au niveaux de la requete
en effet il faut que ma requete face une selection de toute les date existente qui sont superieur ou egal a la date entrez en sachant qui faut respecter le critere saisie:soit la date doit etre superieur ou egale a la saisie dans l' intervalle selectionner.
pour ma requete je sais faire la recherche simple
mais mon probleme ariive losrque la date con veut doit etre inferieur a 1 mois par exemple la je sais pas faire.
sinon voici mon code php , qui ne marche pas.smileysmiley
if ($_POST['sur'] == 'critere') 
{
$requete= 'SELECT * FROM entreprise WHERE date LIKE "'.$_POST['rech_txt'].'"' ;


merci beaucoup pour votre aide.
mercismiley
moogli
le 17/02/2005 à 19:48
moogli
SAlut,

Il faut voir comme sont les date dans ta base !
si non tu récupère la date du jour avec date !

ensuite avec date et mktime tu retire 1 mois cette date

dans ta requete sql tu met where date>= $date

smiley
Il en faut peu pour être heureux !!!!!
Bzh
le 17/02/2005 à 19:53
Bzh
Là, dans ton code tu utlise la fonction LIKE qui permet de recherché toute les mots au groupe de mots == $_POST['rech_txt']

Ce n' est pas bon du tout !!!!

Il faut tt d' abord que ta date soit en registré au format date dans ta base et en ANGLAIS !!! "yyyy-mm-jj"

Ensuite, il n' y a pu qu' à transformer ta date française en date anglais et de la mettre ton ta reqyètte !!!!

$requete= 'SELECT * FROM entreprise WHERE date >= "$date"' ;

$date est ta date saisi et transformé au format anglophone !!!!

Voila, j' éspère avoir été clair !!!

smiley
sonia
le 17/02/2005 à 19:59
sonia
ok d' accord mais apres pour le critere selectionner 1 mois ,1 ans la j' ai pa compri comment jdevai faire.
sinon merci de m'avoir repondu
Bzh
le 17/02/2005 à 20:09
Bzh
Et bien tu fais ton formulaire un peu comme tu veux....

Ensuite, c' est en php que tu dois retravailler ton résultat pour en faire une vrai date en yyyy-mm-jj

Par exemple si il sélectionne 1 moi...

<?php

//date actuel
$annee = date("Y");
$moi = date("m");
$jour = date("d");

//on enlève un moi
if($moi == 01){$moi = 12;
$annee = $annee-1}
else{$moi = $moi-1;}

//on forme la date en anglais
$date_en_anglais = "$annee-$moi-$jour";


//la requètte
$requete= 'SELECT * FROM entreprise WHERE date >= "$date_en_anglais"' ;

?>


Le script est du direct !!!

J' ai pas vérifier la bonne syntax donc peut y avoir des erreurs... Même surment !!!

Bye...

smiley
Bzh
le 17/02/2005 à 23:15
Bzh
Oui, mais je te rassure, je ne fais aucun select avec * !!!

C' est juste parce qu' elle a mis son SELECT au début avec * et je ne sais pas se qu' il y a dans sa base...

Je peux pas deviner....Ou alors je cours jouer au loto... smiley

smiley

ps: J' ai déja lus son article...
moogli
le 17/02/2005 à 23:58
moogli
a wé zavé po vu :lol

désolé :) en général je met une truc de ce genre
SELECT le champ de ta table FROM table WHERE ...

smiley

smiley
Il en faut peu pour être heureux !!!!!
Bzh
le 18/02/2005 à 00:42
Bzh
Ok je mettrais ça dérénavent !!!!

Et, puis, ça permet de montrer aux autres qu' il vaut mieu éviter le SELECT *

Bye..

smiley
Répondre

Ecrire un message

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