Avatar billede benzon Praktikant
20. maj 2003 - 17:20 Der er 24 kommentarer og
1 løsning

Sortering pr dato og klokkeslet ?

Hej

Sider og arbejder på en helpdesk men et lille problem jeg er løbet ind i nu er hvordan jeg teknisk best kan lave en måde så spørgsmål bliver listet så den ældste kommer først.

Så man hele tiden supportere kunder i den rigtíge række følge.

Det jeg hade tænkt mig var noget Med dato+tid

Eks 19/5-03 - 23:55
lad os side det er den ældste og den nyeste er eks
19/5 - 23:56 hvordan skal jeg teknisk set så smide det ind i databasen så den rent faktisk kan liste dem rigtigt så det hele tiden er den der har ventet længst der står i toppen af administrations delen ?
Avatar billede exp-ralle Nybegynder
20. maj 2003 - 17:28 #1
Du bruger en SQL som denne "Select * from database order by dato"

Så kommer den ældste først... er det derimod den nyeste skal du sætte desc på til sidst...
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:29 #2
Smid i database:
$ligenu = date("Y-m-d H:i:s");
@mysql_query("INSERT INTO support (dato) VALUES ('$ligenu')");

Når du henter:
@mysql_query("SELECT * FROM support ORDER BY dato DESC");

Databasefeltet "dato" skal være i formatet DateTime.
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:30 #3
ældste først = ORDER BY dato ASC
sefølli ja
Avatar billede exp-ralle Nybegynder
20. maj 2003 - 17:31 #4
ohmish hvorfor bruger du @ foran mysql_query?
Avatar billede boris Mester
20. maj 2003 - 17:32 #5
Du skal ikke lægge tingene i databasen i bestemt rækkefølge, men sortere når du henter dem.
I SQL er det ved SELECT ...osv..... ORDER BY dato DESC
Du kan også sige ORDER BY ID DESC, hvis du har autonummereringsfelt. Så får du tingene ud i lige nøjagtigt modsat rækkefølge i forhold til da de blev lagt i basen
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:42 #6
exp-ralle>
det er en vane jeg har fået, og det gør jeg fordi php har den (en af de meget få) "svagheder", at eventuelle fejl sendes direkte til browseren og kan se ret uprofessionelt ud.
Meeen, @ skal nok først sættes på når det hele kører, og der ikke skal fejlfindes.
Avatar billede exp-ralle Nybegynder
20. maj 2003 - 17:43 #7
hvad betyder @ foran eks. mysql_query og fopen?
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:50 #8
@ foran en funktion/kommando betyder: "undertryk eventuelle fejl. vis dem ikke i browseren".

at søge i en tom db-tabel kan f.eks give fejl.
Avatar billede tipsen Nybegynder
20. maj 2003 - 17:50 #9
Det betyder at evt. output fra funktionen bliver dirigeret ud i NULL (skraldespanden) i stedet for til standardoutput (browseren)
Avatar billede benzon Praktikant
20. maj 2003 - 17:51 #10
mm men var bare ikke sikker på om den sortere rigtig vis jeg bruger det på den måde der og vilket fælt tyoe skal jeg oprette i mysql ?
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:53 #11
ellers kan man jo kombinere @ med en skræddersyet fejl, eller mysql_error();

f.eks @mysql_query("INSERT INTO support (dato) VALUES ('$ligenu')") or die ("Databasefejl: ".mysql_error());
Avatar billede ohmish Nybegynder
20. maj 2003 - 17:54 #12
benzon> brug datetime felttypen
Avatar billede benzon Praktikant
20. maj 2003 - 17:56 #13
arhhh ser man det ser man det :D
Avatar billede benzon Praktikant
20. maj 2003 - 17:56 #14
tåger åge til mig haha :D
Avatar billede benzon Praktikant
20. maj 2003 - 17:57 #15
burde varchar 50 ikke være nok til Full Name ? det vil jeg da mene eller ?
Avatar billede ohmish Nybegynder
20. maj 2003 - 18:05 #16
tjoooo... og du kan jo begrænse navnlængden i php.

hvis der mod alle odds skulle dukke en op med navnet:
"Valdemar Halløjiskuret Edwardson den tredje af det Mongolske Rige Junior",

forkorter man vel navnet til f.eks:
"V. H. Edwardson III af det Mongolske Rige jr.",
Avatar billede benzon Praktikant
20. maj 2003 - 18:14 #17
Btw ohmish kan du fortæle mig hvordan jeg nemt laver
date("Y-m-d H:i:s"); det format her op til eks
date("d-m-Y H:i"); ?
Avatar billede schaefner Juniormester
20. maj 2003 - 18:15 #18
Avatar billede benzon Praktikant
20. maj 2003 - 18:18 #19
det er jo ikke bare lige til når jeg ikke gemmer det som timestamp jeg gemmer det i mysql som DATETIME
Avatar billede ohmish Nybegynder
20. maj 2003 - 18:26 #20
her er en variant der måske kan bruges:

$fradato = "2003-01-02 20:23:10";

$tid = explode(" ", $fradato);
$data = explode("-", $tid[0]);
$datotid = $data[2]."-".$data[1]."-".$data[0]." kl. ".$tid[1];
$idag = date("Y-m-d H:i:s", (time()-86400));
if ($fradato<$idag) { $fradatoinfo = "$datotid"; } else { $fradatoinfo = "I dag kl. $tid[1]"; }
Avatar billede ohmish Nybegynder
20. maj 2003 - 18:26 #21
når du hiver det ud
Avatar billede ohmish Nybegynder
20. maj 2003 - 18:28 #22
jeg har aldrig selv forsket i det, men har hørt at mysql har en smartere måde at hive det ud på. Søg ex. på "dato format" i mysql kategorien.
Avatar billede exp-ralle Nybegynder
20. maj 2003 - 18:38 #23
Du kan også bare gemme i "varchar format" altså text når du gemmer og så bruge $dato = date("d-m-Y H:i"); 

og så indsætte den...
Avatar billede ohmish Nybegynder
20. maj 2003 - 19:04 #24
nej. brug datetime formatet. ellers ka du ikke "regne i tid" med mysql.
Avatar billede ohmish Nybegynder
20. maj 2003 - 19:05 #25
altså: ind som standard datetime format... ud som hva du nu vil.
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