[PHP] MySQL order by + Beloning!

Gestart doorMarvinn23 reacties35 weergaven

24 berichten · pagina 1 van 2

Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoi..

Ik heb een hele rare fout, ik heb dit:

$sql_laaste = mysql_query("SELECT * FROM forum_reacties ORDER BY datum DESC LIMIT 30");


Alleen ineens werkt hij niet meer, hoe kan dat INEENS?

Ik heb niks aangepast?

// De datum van laatste reactie is: 02-12-2011 22:06:48

// Edit ook hier:

$sql = mysql_query("SELECT *,DATE_FORMAT(datum, %d-%m-20%y %H:%i:%s) AS datum FROM forum_berichten WHERE categorie=".$_GET[cat]." ORDER BY sticky DESC, last_post_date DESC");


Laatste topic moet boven aan staan (Wat altijd werkte) nu staan de onderaan. Kan dat komen door 1-12-11 Want sinds dien is dat?
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Misschien even zeggen wat de error is?
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb geen error, wat normaal altijd netjes gesorteerd werd werkt nu INEENS niet meer.

Als je reactie plaatst moet topic boven aan staan, werkte ALTIJD prima.

Maar sinds gister 01-12-11 werkt het INEENS niet meer?
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Vertel dan even wat er niet werkt. Staat het niet meer goed gesorteerd, of krijg je gewoon helemaal niks? Aan zulke vage berichten hebben we dus echt NIKS.
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik zeg toch hij heeft niet alles goed gesorteerd niet goed?

Zie:
Afbeelding

02-12-11 moet dus bovenaan staan. Dat werkte altijd, nu staat hij onderaan? Het is echt INEENS gekomen?
0
Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

je werkt tog wel met time() he?
Zo niet, dan raad ik je dat aan.
Je kan uit time(), met date() gemakelijk de dag, jaar, maand, seconden, minunten uren enz pakken.
en dan ook nog is makelijk sorteren.
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maar het heeft altijd gewerkt xD?
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Laat de insert eens zien?
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
mysql_query("INSERT INTO forum_berichten (titel,bericht,member_id,categorie,datum,ip,last_post_date) VALUES (".$titel.",".$bericht.",".$_SESSION[id].",".$_GET[cat].",NOW(),".$_SERVER[REMOTE_ADDR].",".date("d-m-Y H:i:s").")");


Het gaat om last_post_date

$sql = mysql_query("SELECT * FROM forum_berichten WHERE categorie=".$_GET[cat]." ORDER BY sticky DESC, last_post_date DESC");


Dit is de code als je een reactie post dat topic bovenaan moet staan.

Zojuist in directadmin gekeken, en laten sorteren op datum:
Afbeelding

Zo als je ziet zie je reactie id 1 (en een oude datum) daarboven zie je reactie id 185, met datum 03-12-11.

Hoe fix ik dit sadley
0
Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dit is volstrekt logisch. Als de ene datum 01-10-2011 is en de andere 02-09-2011 is wil jij dat de 1e bovenaan staat. Dat gebeurd alleen niet omdat 02***** hoger is dan 01******. Je moet sorteren op id, want daarbij is het nieuwste getal altijd hoger dan degene daarvoor.

//Het werkte eerst wel, omdat als het dezelfde maand en jaar is wel werkt.
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoe moet ik dat doen met last_post_date? Als je reactie plaatst update hij de tijd van last_post. (In topic tabel)

mysql_query("UPDATE forum_berichten SET last_post_date=".date("d-m-Y H:i")." WHERE bericht_id=".$_GET[b]."");


Zo leest hij het uit:

$sql = mysql_query("SELECT *,DATE_FORMAT(datum, %d-%m-20%y %H:%i:%s) AS datum FROM forum_berichten WHERE categorie=".$_GET[cat]." ORDER BY sticky DESC, last_post_date DESC");


Dit is topic tabel:
Afbeelding

Wie het kan oplossen krijgt 0,19 punten, aangezien ik de oplossing niet kan vinden en niet zon goede scripter ben. cry
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
ORDER BY sticky DESC, id DESC

edit: Ohnee verkeerd gelezen, je meot van last_post_date een DATETIME maken. Dan hoort het te werken.
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nee werkt nog niet sadley
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Oke dit werkt werkt waarschijnlijk wel.

Dat veld is zeker varchar?

ORDER BY sticky DESC, date_format(last_post_date, %e-%m-%Y %H:%i) DESC

%e = dag 0 -31
%d = dag 00 - 31
%m = maand 00 - 31
%Y = jaar 0000 - 2011
%H = uur 00 - 24
%i = minuut 00 - 59
0
Marvinn

Lid · Topicstarter

Berichten
2.609
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hij werkt nog niet, alles staat door elkaar.

03-12-2011 11:41 Dit is de lastpost. En order by is:

ORDER BY sticky DESC, date_format(last_post_date, %e-%m-%Y %H:%i) DESC

Topic met lastpost: (13-11-2011 13:58:38) Staat boven aan cry
En volgende maand? 1-1-12 is dan de bug opgelost?
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren