Avatar billede technodance.dk Nybegynder
12. april 2004 - 20:03 Der er 13 kommentarer og
1 løsning

where og order by problemer?

Hej exp'er

her henter jeg en kategori

$query = mysql_query("select * from nyheder WHERE dato = '$_GET[kategori]'") or die(mysql_error());

men når jeg udskriver det kommer det ikke i dato og tid

dato er en kolone
tid er en kolone

jeg ved det hedder ORDER BY

men kan ikke sætte samme så det virker
Avatar billede sukos Juniormester
12. april 2004 - 20:07 #1
Og koden for hvordan du udskriver? Eller, hvilken $_GET var som eksempel?
Avatar billede fangel Nybegynder
12. april 2004 - 20:07 #2
SELECT fields FROM table WHERE expr ORDER BY field

Morten
Avatar billede dennismp Nybegynder
12. april 2004 - 20:13 #3
prøv med:
$query = mysql_query("select * from nyheder WHERE dato = '{$_GET[kategori]}' ORDER BY dato") or die(mysql_error());

Dette undre mig dog lidt:
dato = '{$_GET[kategori]}'

hvis dato er en kategori? Er det ikke en fejl?
Avatar billede technodance.dk Nybegynder
12. april 2004 - 20:17 #4
$query = mysql_query("select * from nyheder WHERE kategori= '{$_GET[kategori]}' ORDER BY dato") or die(mysql_error());

men havd så med "tid"
Avatar billede dennismp Nybegynder
12. april 2004 - 20:21 #5
$query = mysql_query("select * from nyheder WHERE kategori= '{$_GET[kategori]}' ORDER BY dato,tid") or die(mysql_error());

Sådan?

er du klar over, at der findes en kolonnetype der hedder DATETIME som indeholder både dato og tid?
Avatar billede mikl-dk Nybegynder
12. april 2004 - 21:07 #6
$query = mysql_query("select * from nyheder WHERE kategori= '" . addslashes($_GET["kategori"]) . "' ORDER BY dato, tid") or die(mysql_error());

Husk altid at add slashes - eller fjern ' fra requestvariabler (både GET, POST, COOKIE og SESSION)!

Ydermere er det også mest korrekt at sætte index i array i anførselsteng, når index er en string - dvs. $_GET["kategori"] i stedet for $_GET[kategori]. Begge virker dog pga. PHP har denne funktionalitet indbygget (endnu).
Avatar billede technodance.dk Nybegynder
12. april 2004 - 21:48 #7
kan så fortælle hvorfor det her ikke virker

$query = mysql_query("select * from nyheder WHERE kategori= '" . addslashes($_GET["kategori"]) . "' ORDER BY dato, tid asc") or die(mysql_error());
Avatar billede mikl-dk Nybegynder
12. april 2004 - 21:58 #8
Har du en fejlmelding - det ville hjælpe en del :)
Avatar billede technodance.dk Nybegynder
12. april 2004 - 22:04 #9
nope den udskriver dem bare

men ikke med nyste dato ,tid

fx.

1)
Http//: testlink.dk | Tilføj af: Admin | [08-04-04] | [12.26]

2)
Http//: test.dk | Tilføj af: User2030 | [12-04-04] | [21.19]

sådan udskriver den dem men den nyste skal være i toppen og det er nummer 2)
Avatar billede fangel Nybegynder
12. april 2004 - 22:10 #10
SELECT * FROM nyheder WHERE kategori= '{$_GET[kategori]}' ORDER BY dato, tid DESC
Avatar billede technodance.dk Nybegynder
12. april 2004 - 22:13 #11
nope den det samme

1)
Http//: testlink.dk | Tilføj af: Admin | [08-04-04] | [12.26]

2)
Http//: test.dk | Tilføj af: User2030 | [12-04-04] | [21.19]
Avatar billede mikl-dk Nybegynder
12. april 2004 - 22:18 #12
$query = mysql_query("select * from nyheder WHERE kategori= '" . addslashes($_GET["kategori"]) . "' ORDER BY dato DESC, tid DESC") or die(mysql_error());
Avatar billede technodance.dk Nybegynder
12. april 2004 - 22:26 #13
nu virker det men havd betyder "addslashes" og havd bruges det til
Avatar billede mikl-dk Nybegynder
12. april 2004 - 22:32 #14
' laves om til \' det er for ikke at en ondsindet kan manipulere i query. Se http://php.net/addslashes

Det var direction DESC der ikke var på
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