Min select er: SELECT * FROM `feltnavn` ORDER BY id ASC
Og den skal helst blive ved mad at udskrive fra id, så hvordan mener du jeg kan gøre det du foreslår ?
Synes godt om
Slettet bruger
12. juli 2007 - 10:36#3
Hvis du udnytter mysql 100%, så vælger du dit data felt med datatypen 'date' og så kan du bare i dit udtræk: SELECT * FROM feltnavn ORDER BY date ASC
Synes godt om
Slettet bruger
12. juli 2007 - 10:54#4
Ok, det er så ikke tilfældet. Feltet er et textfelt, og datoerne indskrevet som eks. 040707 men når noget nyt indskrives kan det være 100707 og så er det jo det højeste.
Fra det tidligere eksempel som jeg smed link til ender det her:
$date = $row_VisBoeger['Dato'];
Men den tager så den første i rækken. Den skulle gerne finde den højeste dato og udskrive. Kan man ikke det ?
Synes godt om
Slettet bruger
12. juli 2007 - 11:33#5
Jeg lavede lige en test med date. Hvis jeg bruger den så omskrives 040707 til 2004-07-07 og det betyder der skal rettes en masse felter for at få det til at passe. Det virker noget uoverskueligt.
Jeg ville nok bruge et timestamp de er meget lettere at have med at gøre.. Jeg tror ikke rigtigt du kan sortere efter den højeste dato da det er ddmmyy... hvis det havde været yymmdd så havde det jo stået som et almindeligt tal som man så kunne lave en ORDER BY ud af... men når du indsætter en ting, så får den en id, så spørgsmålet er om du kun sætter ting ind som den nyeste dato, eller om du sætter en gammel ting ind som så får et højt id.
Synes godt om
Slettet bruger
12. juli 2007 - 16:42#15
Det lyder jo ikke godt. Man kan nok ikke i SELECT, men man kan vel finde det i et array i php ? En nyere dato vil jo være et højere tal uanset hvilken dato det er.
Det vil jo være noget af et job at lave alle datoer om :) men det kan selvfølgelig lade sig gøre.
Hvis det er et rigtigt dato felt, hvad vil I så foreslå ? Såa kan jeg jo evt. eksperimentere lidt med at få det til at virke på en lille test base, og virker det, må jeg jo lave lidt slavearbejde. Problemet er at det er indskrevet, men jeg kan selvfølgelig rette det.
du kan gøre det i php at du trækker alle rækker ud.. bryder tallet om for hver andet ciffer, og sætter det sammen igen så årstallet er forrest... derefter kan du finde det højeste og finde ud af hvilken id tallet har og så trække det id ud af databasen.. men det er alt for besværligt.. du skal hellere lave dato feltet om..
Synes godt om
Slettet bruger
12. juli 2007 - 17:30#17
Nu har jeg kopiet en lille tabel og rettet Dato til date - ikke tamestamp, der skal ikke være tid på.
Hvordan får jeg så hold i problemet ? Nu virker den hjælp jeg fik i det andet spørgsmål jo heller ikke mere. Der skal jo skrives noget andet. Der er dæleme noget at eksperimentere med :)
Ole.
Synes godt om
Slettet bruger
12. juli 2007 - 17:30#18
Og jeg har selvfølgelig også rettet datoen til mysql format.
Synes godt om
Slettet bruger
12. juli 2007 - 17:43#19
Hold da op. Mail fra spørgsmålet er en hel time forsinket.
Synes godt om
Slettet bruger
12. juli 2007 - 17:59#20
Som danielss skriver så kan du gøre det via. php, netop det med at rette datoerne til det rigtige format.
Hvis du vil ha' tid på din dato, skal du vælge data type 'datetime' istedet for 'date' som er dato, og 'time' som kun er tid, datetime er en blandning.
Kigger lige på dit andet spørgsmål, ved ikke hvad det er der skal laves om endnu.
Synes godt om
Slettet bruger
12. juli 2007 - 18:02#21
Jeg tror jeg har fået den til at skrive ud, men i forkert format. Den skriver som det står i databasen nu. Alså mysql format. Det skal så vendes til dansk format, og dansk måned tekst.
Men jeg synes ikke rigtig jeg kan finde noget om det. Det er alt sammen noget der bruges i langbortistan, og ikke med måmed som tekst.
Synes godt om
Slettet bruger
12. juli 2007 - 18:04#22
nu er det faktisk meget nemmere: <?PHP setLoc('da_DK.ISO_8859-1'); $date = "2007-07-13 18:04:00"; /* Du kan se flere måder at skrive tingene ud på http://www.php.net/date */ echo date("j F Y", $date) . "<br />\n"; echo date("r" $date) . "<br />\n";
?>
Synes godt om
Slettet bruger
12. juli 2007 - 18:07#23
3. sidste linje skal lige rettes til echo date("r", $date) . "<br />\n";
Synes godt om
Slettet bruger
12. juli 2007 - 18:23#24
Skal $date ikke defineres før kald af den funktion, som selvfølgelig manglede da jeg begyndte forfra :)
Men den skriver 1. januar 1970 og det rigtige i $date er 2007-07-04 og skulle gerne ende med at skrive 4. juli 2007
Det er da noget indviklet. Jeg har også forsøgt at gennemskue noget af det der står på http://www.php.net/date men det synes jeg ikke rigtig at have held med.
Resten af ovenstående ser ellers ud til at virke, sålænge det er den første dato i rækken.
Synes godt om
Slettet bruger
13. juli 2007 - 09:40#28
Fordi der lige skal strtotime() omkring datoen.
Sådan her:
<?PHP setLoc('da_DK.ISO_8859-1'); $date = "2007-07-13 18:04:00"; /* Du kan se flere måder at skrive tingene ud på http://www.php.net/date */ echo date("j F Y", strtotime($date)) . "<br />\n"; echo date("r" strtotime($date)) . "<br />\n";
og hvis jeg sætte strtotime omkrin ved echo så skriver den -1.
echo strtotime($new_date); giver -1
Jeg har sikket misforstået noget, men jeg har rodet rundt her på eksp og på nettet og er vist ved at være rigtig meget forvirret.
Synes godt om
Slettet bruger
13. juli 2007 - 16:17#30
Slet ingen løsning ? Jeg har nærmest opgivet at få det til at virke.
Feltet i tabellen er et DATE felt nu, og jeg kan få den til at gemme og rette og indskrive datoen nu.
Men få den til at finde den højeste (nyeste dato) kan jeg altså ikke få den til.
Synes godt om
Slettet bruger
14. juli 2007 - 02:55#31
Du skal jo bruge min, det hele af det jeg skrev. Lav dato feltet til datatype datetime, og så bruge min kode.
Synes godt om
Slettet bruger
14. juli 2007 - 08:03#32
Jeg forstår ikke hvorfor det skal være datetime, når jeg kun skal bruge datoen. Så må date vel være ok ?
Nu har jeg lige fået det til at virke med at índsætte ny dato og rette/opdatere. Skal jeg så forfra en gang til ?
Ole.
Synes godt om
Slettet bruger
14. juli 2007 - 10:55#33
Ja så er date fint nok, forstod bare på dig at du også ville bruge tid. Men ja så skal du forfra, derfor jeg sagde, du kan lige så godt rette det før projektet bliver for stort. Men op til dig.
Synes godt om
Slettet bruger
14. juli 2007 - 11:08#34
SKAL det være TIMESTAMP for at få udskrevet den rigtige dato ?
Jeg HAR ændrer typen til DATE i databasen, og kan også bruge den.
Det er kun med at finde den nyeste dato der er problemet uden at ændre på rækkefølgen af alle andre data i basen.
Hvis jeg bruger denne:
SELECT * FROM tabelnavn ORDER BY Dato DESC
for jeg den nyeste dato skrevet ud, men så er rækkefølgen på alle andre data ændret. Det kan man sikkert ikke lave om på.
Smid nogle svar - så laver jeg et nyt spørgsmål senere, hvis det bliver nødvendigt. I har hjulpet mig rigtig langt.
Det her er også ved at være noget uoverskueligt :)
Tak for hjælpen.
Synes godt om
Slettet bruger
14. juli 2007 - 11:35#35
Forstår dig ikke, den sortere så dato den nyeste er øverest. Hvad er det du vil ha'?
Synes godt om
Slettet bruger
14. juli 2007 - 11:48#36
Det eneste jeg gerne vil have er, at den finder den nyeste dato i tabellen, uden at ændre på udskrift rækkefølgen, som udskrives efter id.
Men det er jo ikke sikkert det bare lige kan lade sig gøre, og så må man jo prøve at opfinde noget andet :-)
Synes godt om
Slettet bruger
14. juli 2007 - 12:24#37
Det vil jo aldrig kunne lade sig gøre! Fordi hvis: id 1 har datoen 2007-07-14 id 2 har datoen 2007-07-15 id 3 har datoen 2007-07-13
Her vil det være id 3, 1, 2
Synes godt om
Slettet bruger
14. juli 2007 - 12:27#38
Jamen så er problemet jo løst :)
Tak for hjælpen alligevel. Der bliver jo også brugt tid på at hjælpe, så smid et svar, dem der deltager, helst hurtigt, så jeg ikke glemmer dette.
Ole.
Synes godt om
Slettet bruger
14. juli 2007 - 13:39#39
svar
Synes godt om
Slettet bruger
14. juli 2007 - 15:39#40
Hmm, fik lige en idé :)
Først denne
"SELECT * FROM tabelnavn ORDER BY Dato DESC"; .... $date = $row_VisBoeger['Dato'];
og derefter
"SELECT * FROM tabelnavn ORDER BY id ASC";
Og så vise som jeg plejer.
Så få jeg datoen pille ud, og får derefter vist som det skal. Det holder sikkert ikke med mange hundrede poster, så bliver den måske sløv, men jeg tror aldrig der kommer mere end 50 til 75 poster i tabellen :) Sikkert Fub og Svindel, men det virkede.
Flere der vil svare ellers løber coldgate med puljen.
Ole.
Synes godt om
Slettet bruger
14. juli 2007 - 22:51#41
Det her gjorde det lidt hurtigere :)
"SELECT Dato FROM tabelnavn ORDER BY Dato DESC";
Mange tak for jeres hjælp. Hvis nogen kommer forsent, og skulle have points, må så brokke sig. Hvis ikke jeg får afsluttet spørgsmål, glemmer jeg det bare.
Ole.
Synes godt om
Slettet bruger
15. juli 2007 - 02:12#42
Forstår det ikke! For du kan ikke få det som du vil ha' det.
Du vil ha' det nyeste ide øverest men samtidig også datoen, men ikke sikkert de matcher jo.
Prøv giv et eksempel ligesom jeg gjorder ala. id 1 har datoen 2007-07-14 id 2 har datoen 2007-07-15 id 3 har datoen 2007-07-13
Synes godt om
Slettet bruger
15. juli 2007 - 07:43#43
Jeg tror jeg kan se hvd dit problem er nu.
Du tror at datoen skal udskrives, det skal den kun den ene gang, og det er den nyeste. Jeg har lige haft forbindelse med personen der skal bruge det, og datoen skal kun bruges een gang. Så jeg kunne rent faktisk nøjes med et felt i en anden tabel til datoen. Jeg havde nemlig opfattet at datoen skulle gemmes sammen med andre data. Det skal så istedet være daga dato :) Nå, men der blev da eksperimenteret en masse,
Tak for deltagelsen :-)
Synes godt om
Ny brugerNybegynder
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.