login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Groeperen na ophalen van gegevens

Offline Frederic - 30/03/2005 23:59 (laatste wijziging 31/03/2005 11:13)
Avatar van FredericPHP ver gevorderde Ik haal top pagina's uit mijn database via volgend gedoe:
  1. $top_pagina_sql = mysql_query("SELECT pagina AS top_pagina, COUNT(*) AS top_pagina_aantal FROM site_bezoekers WHERE pagina != '' GROUP BY pagina ORDER BY top_pagina_aantal DESC");
  2. while($top_pagina_rij = mysql_fetch_assoc($top_pagina_sql))
  3. {
  4. $pagina = $top_pagina_rij['top_pagina'];
  5. $aantal = $top_pagina_rij['top_pagina_aantal'];
  6. if ($pagina == "/Onderdelen/FadeToLife.info/")
  7. {
  8. $pagina = "http://www.FadeToLife.info";
  9. }
  10. if ($pagina == "/")
  11. {
  12. $pagina = "http://www.FadeToLife.be (openingspagina)";
  13. }
  14. if(ereg("Fotoalbum",$pagina)) {
  15. $pagina = "Fotoalbum gerelateerde pagina's";
  16. }

Nu, in mijn lijst komt "Fotoalbum gerelateerde pagina's (1)" extreem veel voor, is er geen methode om die pagina's te groeperen en dan een som te maken van alle aantallen die Fotoalbum in hun string hebben?
Nu heb ik zoiets als:
Citaat:
22 Fotoalbum gerelateerde pagina's (26x)
23 Fotoalbum gerelateerde pagina's (26x)
24 Fotoalbum gerelateerde pagina's (25x)
25 Fotoalbum gerelateerde pagina's (25x)
26 Fotoalbum gerelateerde pagina's (24x)
27 Fotoalbum gerelateerde pagina's (24x)

Maar khad daar graag van gemaakt:
22 Fotoalbum gerelateerde pagina's (150x)

6 antwoorden

Gesponsorde links
Offline Thomas - 31/03/2005 12:16
Avatar van Thomas Moderator Er moet dan een verband zijn tussen die verschillende "toppagina's" (wat dat ook moge inhouden) om ze te kunnen GROUPen.
Offline Frederic - 31/03/2005 13:07 (laatste wijziging 31/03/2005 13:47)
Avatar van Frederic PHP ver gevorderde Hmm, dat is gewoon te moeilijk!
Is er een methode om te zeggen: geef alles weer in een lijst (zoals het nu dus gedaan wordt), behalve de dingen waarvoor dit geldt:
ereg("/Fotoalbum/",$pagina) (dus, alles waar Fotoalbum in voorkomt mag NIET in de lijst...

NOT LIKE '%Fotoalbum%' doet het niet

bestaat er niet zoiets om te zetten

while (ereg("/Fotoalbum/",$pagina) == FALSE){
geef alles weer (er zit dus nergens het woordje Fotoalbum in)
}
Offline Thomas - 31/03/2005 14:06
Avatar van Thomas Moderator Dan wordt het zoiets als (weet niet zeker of dit werkt):
SELECT *
FROM whatever
WHERE veldnaam REGEXP "[^Fotoalbum]"

of
SELECT *
FROM whatever
WHERE NOT(veldnaam REGEXP "*Fotoalbum*")
Offline Frederic - 31/03/2005 14:14
Avatar van Frederic PHP ver gevorderde De 2e methodehttp://www.sitemasters.be/images/forum/code_on.gif
Code geeft
Citaat:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

De 1e geeft
Citaat:
Parse error: parse error, unexpected '[' in


Dit is dan mijn code:
  1. $top_pagina_sql = mysql_query("SELECT pagina AS top_pagina, COUNT(*) AS top_pagina_aantal FROM site_bezoekers WHERE pagina != '' WHERE pagina REGEXP "[^Fotoalbum]" GROUP BY pagina ORDER BY top_pagina_aantal DESC");
Offline Thomas - 31/03/2005 14:26
Avatar van Thomas Moderator Ow... Single quotes gebruiken in je query misschien ?
Offline Frederic - 31/03/2005 14:30
Avatar van Frederic PHP ver gevorderde Dit heb ik dan:
  1. $top_pagina_sql = mysql_query("SELECT pagina AS top_pagina, COUNT(*) AS top_pagina_aantal FROM site_bezoekers WHERE pagina != '' OR pagina REGEXP '[^Fotoalbum]' GROUP BY pagina ORDER BY top_pagina_aantal DESC");

Maar dan worden de $pagina 's met het woordje Fotoalbum erin nog niet eruit gefilterd 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.186s