Avatar billede dmg Nybegynder
01. juni 2004 - 13:11 Der er 12 kommentarer og
1 løsning

søg fra dato til dato

Hej eksperter.

Jeg har en sql-database, hvori der er et date felt.

Nu har jeg lavet 2 tekstfields i min php kode, som hedder.
"Fra dato"
"Til dato"

Kan i evt hjælpe med en sqlkode? eller har jeg postet det helt forkert sted`?
Avatar billede dennismp Nybegynder
01. juni 2004 - 13:16 #1
SELECT * FROM Appointments WHERE
Moment BETWEEN StartTime AND EndTime ORDER BY StartTime;
Avatar billede dmg Nybegynder
01. juni 2004 - 13:28 #2
okay det ser helt fint ud. Men jeg har jo kun 2 felter. startdato og slutdato.

SELECT * FROM info WHERE
Moment BETWEEN ".$_POST['startdato']." AND ".$_POST['startdato']." ORDER BY ".$_POST['startdato']."

det her virker ihvertfald ikke :( kan du evt give mig et eksempel?
Avatar billede dennismp Nybegynder
01. juni 2004 - 13:38 #3
SELECT * FROM info
WHERE Moment BETWEEN '2001-01-01' AND '2004-01-01'
ORDER BY StartTime;


Hvad hedder dit dato-felt? Da vel ikke moment? :)

Og hvad er fejlen
Avatar billede dmg Nybegynder
01. juni 2004 - 14:06 #4
wuhuuuu det virker ;-) mange tak.

Et lille spørgsmål, nu hvor du er her. Når man nu indaster datoen i feltet skal man jo også skrive: 2004-05-28 hvor jeg meget gerne vil kunne skrive sådan her 28-06-2004.

Hvis du vil have mere points for dette må du sige til :-)
Avatar billede dennismp Nybegynder
01. juni 2004 - 14:11 #5
$start = $_POST['startdato'];
$arr = explode('-',$start);
$start = "{$arr[2]}-{$arr[1]}-{$arr[0]}";

og det samme med slutdato
Avatar billede dmg Nybegynder
01. juni 2004 - 14:31 #6
øhhh... sorry, men jeg er ikke særlig god til php :(

hvad skal jeg helt præcist gøre med den kode der?

Min kode ser således ud nu :

$sog_dato = mysql_query("SELECT * FROM info WHERE dato BETWEEN '".$_POST['start_dato']."' AND '".$_POST['slut_dato']."' ORDER BY '".$_POST['start_dato']."'") or die("Invalid query: " . mysql_error());
    while ($row = mysql_fetch_array($sog_dato))
    {

      print "<tr><td>".$row['ansvarlig']."</td><td>".$row['kuponnr']."</td><td>".$row['dato']."</td><td>".$row['tidspunkt']."</td><td>".$row['sagsnr']."</td><td>".$row['kontorudgift']."</td><td>".$row['formol']."</td><td>".$row['antal_personer']."</td><td>".$row['brev']."</td><td>".$row['vin']."</td><td>".$row['andet']."</td><td>".$row['kores_for']."</td><td>".$row['adresse']."</td></tr>";

    }
Avatar billede dennismp Nybegynder
01. juni 2004 - 14:37 #7
$startdato = $_POST['startdato'];
$arr = explode('-',$startdato);
$startdato = "{$arr[2]}-{$arr[1]}-{$arr[0]}";

$slutdato = $_POST['slutdato'];
$arr = explode('-',$slutdato);
$slutdato = "{$arr[2]}-{$arr[1]}-{$arr[0]}";

$sog_dato = mysql_query("SELECT * FROM info WHERE dato BETWEEN '$startdato' AND '$slutdato' ORDER BY '".$_POST['start_dato']."'") or die("Invalid query: " . mysql_error());

while(....
Avatar billede dennismp Nybegynder
01. juni 2004 - 14:39 #8
Hovsa en anden lille fejl.. Det giver ikke mening at sortere på den dato brugeren har tastet ind (den vil jo aldrig ændre sig):

$sog_dato = mysql_query("SELECT * FROM info WHERE dato BETWEEN '$startdato' AND '$slutdato' ORDER BY dato") or die("Invalid query: " . mysql_error());
Avatar billede dmg Nybegynder
01. juni 2004 - 14:49 #9
Min kode ser sådan ud nu:

$startdato = $_POST['startdato'];
    $arr = explode('-',$startdato);
    $startdato = "{$arr[2]}-{$arr[1]}-{$arr[0]}";

    $slutdato = $_POST['slutdato'];
    $arr = explode('-',$slutdato);
    $slutdato = "{$arr[2]}-{$arr[1]}-{$arr[0]}";


    print "<table border='2'>";
    print "<tr><th>Ansvarlig</th><th>Kuponnr</th><th>Dato</th><th>Tidspunkt</th><th>Sagsnr / Projektnr</th><th>Kontorudgift</th><th>Formål</th><th>Passager(er)</th><th>Brev</th><th>Vin</th><th>Andet</th><th>Turen køres for</th><th>Adresse</th></tr>";
    $sog_dato = mysql_query("SELECT * FROM info WHERE dato BETWEEN '$startdato' AND '$slutdato'") or die("Invalid query: " . mysql_error());
    while ($row = mysql_fetch_array($sog_dato))
    {...

og jeg får fejlen:

Notice: Undefined index: startdato in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 191

Notice: Undefined offset: 2 in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 193

Notice: Undefined offset: 1 in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 193

Notice: Undefined index: slutdato in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 195

Notice: Undefined offset: 2 in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 197

Notice: Undefined offset: 1 in C:\Documents and Settings\dmg\Desktop\webs\taxi\check.php on line 197

Når jeg skriver sådan i felterne:

felt 1 = 28-05-2004
felt 2 = 01-06-2004
Avatar billede dmg Nybegynder
01. juni 2004 - 14:53 #10
ups!!! du har fulstændig ret. Jeg har bare kaldt mine textfields for start_dato og slut_dato.

Nu har du måske forstået hvor dårlig jeg er ...griner..

Tak for dette. det var en stor hjælp.
Hit med et svar, så jeg kan give dig nogle points ;-)
Avatar billede dennismp Nybegynder
01. juni 2004 - 14:53 #11
Hvilken linje er 191 ?

Denne: $startdato = $_POST['startdato']; ?
Avatar billede dmg Nybegynder
01. juni 2004 - 14:59 #12
det er en forløkke ?

Men bare svar nu :-) det hele virker perfekt!!! jubiii
Avatar billede dennismp Nybegynder
01. juni 2004 - 15:01 #13
Herligt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester