login  Naam:   Wachtwoord: 
Registreer je!
 Forum

GROUP BY probleem

Offline Ultimatum - 03/04/2006 23:16 (laatste wijziging 03/04/2006 23:19)
Avatar van UltimatumPHP expert ik heb een pm systeem, maar ik wil dat alle ongelezen berichten gesorteerd op tijd bovenaan komen (nieuwste eerst ) en daaron de al gelezen berichten op datum, ik probeerde dat dmv deze query:

  1. <?php
  2. $message = mysql_query("SELECT * FROM pm GROUP BY readit = '0', time HAVING reciever = '".$_COOKIE['username']."'") or die(mysql_error());
  3. ?>


readit is als CHAR( 1 ) opgeslagen (kan 0 of 1 zijn )
en time als int( 10 )

ik neem aan dat hier niks mis mee is 

maar wath ij nou doet is dat hij gewoon sorteerd op id ASC, maar dat wil ik dus niet
:p

6 antwoorden

Gesponsorde links
Offline Stijn - 03/04/2006 23:49
Avatar van Stijn PHP expert 1) zou je readit niet veranderen van type -> enum(0,1) want char(1) kan alles bevatten hoor

  1. <?
  2. $message = mysql_query("SELECT * FROM pm GROUP BY readit = '0', time ASC HAVING reciever = '".$_COOKIE['username']."'") or die(mysql_error());
  3. ?>


weet het niet 100% zeker, probeer anders eens DESC ipv ASC.

stijn
Offline Gerard - 04/04/2006 02:25 (laatste wijziging 04/04/2006 11:34)
Avatar van Gerard Ouwe rakker
  1. <?php
  2. $message = mysql_query("SELECT *
  3. FROM pm
  4. WHERE receiver = '".mysql_real_escape_string($_COOKIE['username'])."'
  5. ORDER BY readit ASC, time ASC");
  6. ?>


edit had mijn where en order by verwisselt, een fout die je zelf er ook wel uit had kunnen halen met wat kijken.
Offline Ultimatum - 04/04/2006 08:32 (laatste wijziging 04/04/2006 08:40)
Avatar van Ultimatum PHP expert @Proximus, kreeg een error bij mijn WHERE statement
@Stijn1989, hij doet het half , maar verder lukt het me denk ik 

het lukt me dus niet verder alleen :p

heb nu 4 berichten, waarvan de eerste 2 ongelezen zijn en bovenaan staan dat klopt, maar het is dat de oudste bovenaan staat en daaronder de nieuwste, en die 2 andere berichten zijn wel gelezen en staat onder de niet gelezen en die staan wel met nieuwste boven etc.. iemand idee 

  1. <?php
  2. $message = mysql_query("SELECT * FROM pm GROUP BY readit = '0' DESC, time DESC HAVING reciever = '".$_COOKIE['username']."'") or die(mysql_error());
  3. ?>


dit zijn de datums 
Citaat:
03/04/2006 22:57 << niet gelezen
03/04/2006 22:52 << niet gelezen
04/04/2006 08:27 << wel gelezen
03/04/2006 23:01 << wel gelezen


zoals je ziet moeten de bovenste 2 dus van plek ruilen 
Offline Stijn - 04/04/2006 09:38
Avatar van Stijn PHP expert volgens mij is het bericht van 22:57 later en dus nieuwer dan het bericht van 22:52. kloklezen gehad op school? 
Offline xSc - 04/04/2006 12:50
Avatar van xSc Onbekend Heb je dit artikel al gelezen?

http://www.yapf.net/faq.php/100/861
Offline Ultimatum - 04/04/2006 15:34
Avatar van Ultimatum PHP expert @stijn1989, ah shoot, je hebt gelijk , was me een beetje te vroeg 
@henri, thanx voor dat artikel, helpt me best veel  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.191s