MySQL Omvendt rækkefølge

Tags:    php

<< < 123 > >>
Hey, jeg er rimelig n00b til MySQL og PHP men jeg har lavet et newssystem hvor jeg har lavet en mySQL database, men så når jeg henter dem fra databasen kommer de selvfølgelig med den der har id 1 først, kan man ikke vende det om ligesom med "!" så den nyeste kommer først???

Og hvordan laver man en side hvor man kan indsætte nyheder?
jeg har følgende i tabellen = id dato forfatter tekst headline.
det må også gerne være sådan at den selv henter datoen helst i dette format: "10/10/2002 eller 10-10-2002".



21 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Det har jeg allerede svaret på... se svaret ovenfor.



SQL: SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline ORDER BY id DESC

%e = day of month (0..31)
%c = month of year (0..12)
%Y = year (4 digits)

Så skulle den gerne formattere datoen således, (x)x-(x)x-xxxx. Parantesen skyldtes, at tallene fra 0 til 9 kun repræsenteres med et ciffer.

Her er linket til formattering af datoer i SQL-queries

http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions

Erik K. Aarslew-Jensen


Øhh... det skal vel skrives på php siden eller hvad?

Så der kommer til at stå:
mysql_query("SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline ORDER BY id DESC");

Det kan jeg ikke få til at virke... :(



Og når jeg skriver det i MySQL skriver den at der er en fejl:

SQL-forespørgsel :

SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline ORDER BY id DESC

MySQL returnerede:


You have an error in your SQL syntax near 'ORDER BY id DESC' at line 1





Sorry... my bad glemte lige tabellen :o)

SQL: SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline FROM <tabel> ORDER BY id DESC


Men husk at feltet "date" skal være af typen DATE...

Du kan evt. benytte SQL-funktionen NOW() når du skal indsætte en værdi i feltet, ex.

SQL: INSERT INTO <tabel> SET date = NOW(), forfatter = ...

eller

SQL: UPDATE <tabel> SET date = NOW() WHERE forfatter = 'jens' ...



Hvae... er det mig der er hjernedød eller hvad får jeg får en fejl på linie 6, her er scriptet så da:

3: con_db();
4: $person = "$data[forfatter]";
5: $query = mysql_query("SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline FROM news ORDER BY id DESC LIMIT 0, 5");
6: while ($data = mysql_fetch_array($query)) {



Hvae... er det mig der er hjernedød eller hvad får jeg får en fejl på linie 6, her er scriptet så da:

3: con_db();
4: $person = "$data[forfatter]";
5: $query = mysql_query("SELECT id, DATE_FORMAT(date, '%e-%c-%Y'), forfatter, tekst, headline FROM news ORDER BY id DESC LIMIT 0, 5");
6: while ($data = mysql_fetch_array($query)) {


Prøv at omskrive LIMIT 0, 5 til LIMIT 5, hvis du får en fejl i linje 6 er det fordi dit query er udfyldt forkert.



Jeg har selv afprøvet dette SQL-query i MySQL konsollen uden problemer.

Det er dog vigtigt at date er af typen DATE i din tabel.



Jeg har selv afprøvet dette SQL-query i MySQL konsollen uden problemer.

Det er dog vigtigt at date er af typen DATE i din tabel.


Okay... men kommer den så ikke til at være fx. 2002-12-09?

Jeg prøver det lige igen igen...

Nå du må vist også hellere få dine point eller hvad?



Jeg har selv afprøvet dette SQL-query i MySQL konsollen uden problemer.

Det er dog vigtigt at date er af typen DATE i din tabel.


Øhhh forresten... nu har jeg hjemmesiden på et webhotel... har det noget at sige??

Skal man så ikke bare skrive det i "phpMyAdmin"?



Jeg har selv afprøvet dette SQL-query i MySQL konsollen uden problemer.

Det er dog vigtigt at date er af typen DATE i din tabel.

Okay... men kommer den så ikke til at være fx. 2002-12-09?



Det er også derfor man anvender funktionen DATE_FORMAT(date, '%e-%c-%Y'). Så sørger den for at du får datoen ud i det rigtige format, også selv det ser anderledes ud i selve databasen.

Og... nej det har ingen indflydelse at du har et webhotel m. phpmyadmin, SQL er SQL.



<< < 123 > >>
t