het doel van de volgende code is om te groeperen op het gedeelte van een referer tussen de "q=" en het "&" teken..
<?php
mysql_query("
SELECT referer, SUM(visits) AS visits, SUM(hits) AS hits
FROM stats
WHERE referer != 'bookmark' AND referer != ''
GROUP BY referer
LIKE CONCAT('%',SUBSTRING(SUBSTRING(referer FROM LOCATE('q=',referer)) FROM LOCATE('&',SUBSTRING(referer FROM LOCATE('q=',referer))),'%')
ORDER BY visits DESC
LIMIT 10
") or die(mysql_error());
?>
Geeft de volgende error:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''%') ORDER BY visits DESC, hits DESC LIMIT 10' at line 1
En ik weet nog steeds niet hoe ik de buitenste substring moet gebruiken om het goede resultaat te krijgen.
Dit is de code overzichtelijk uitgewerkt:
<?php
SUBSTRING
(
SUBSTRING
( // hij pakt hier het stuk na q=, je houdt over: zoekwoord&blabla=blabla&blabla=ja
referer
FROM
LOCATE
(
'q=',referer
)
)
FROM
LOCATE
( // hij pakt hier de positie van het eerste & teken
'&',
SUBSTRING
( // hij pakt hier het stuk na q=, je houdt over: zoekwoord&blabla=blabla&blabla=ja
referer
FROM
LOCATE
(
'q=',referer
)
)
)
)
?>
Op de error na gaat het mis bij de FROM in de buitenste SUBSTRING, hij moet daar namelijk het gedeelte voor het & teken pakken.. en niet erna.
Ik hoop echt dat iemand de moeite neemt om mij te helpen, ben er al veel te lang mee bezig..
Alvast bedankt!
2.791 views