SELECT en REGEXP
http://www.hallo.com/hallo1
http://www.hallo.com/hallo3/jaja
http://www.amsterdam.nl/bezoek/hallo
http://www.rotterdam.nl/vvv
ik wil dus een lijst krijgen met
http://www.hallo.com 2
http://www.amsterdam.nl 1 etc etc ..
EDIT de domeinen staan zo al in mijn database! Voordat ik hier een opmerking over krrijg dat ik ook makkelijk met php al de domein eruit kan filteren :)
Gewijzigd op 01/01/1970 01:00:00 door Femke
niemand?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$urls[] = 'http://www.hallo.com/hallo1';
$urls[] = 'http://www.hallo.com/hallo3/jaja';
$urls[] = 'http://www.amsterdam.nl/bezoek/hallo';
$urls[] = 'http://www.rotterdam.nl/vvv';
$stats = array ();
foreach ($urls as $url) {
if (isset ($stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'])) {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal']++;
}
else {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'] = 1;
}
}
foreach ($stats as $key => $val) {
echo '<p>' . $key . ': ' . $val['aantal'] . '</p>';
}
?>
$urls[] = 'http://www.hallo.com/hallo1';
$urls[] = 'http://www.hallo.com/hallo3/jaja';
$urls[] = 'http://www.amsterdam.nl/bezoek/hallo';
$urls[] = 'http://www.rotterdam.nl/vvv';
$stats = array ();
foreach ($urls as $url) {
if (isset ($stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'])) {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal']++;
}
else {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'] = 1;
}
}
foreach ($stats as $key => $val) {
echo '<p>' . $key . ': ' . $val['aantal'] . '</p>';
}
?>
Edit:
Edit:
Edit 2:
Ik vond het toch wel een leuke puzzel en heb deze query in elkaar gesleuteld, die precies hetzelfde doet:
Code (php)
1
2
3
4
5
2
3
4
5
SELECT
SUBSTRING_INDEX(ulr,'\/',3) AS domein,
COUNT(id) AS aantal
FROM urls
GROUP BY domein
SUBSTRING_INDEX(ulr,'\/',3) AS domein,
COUNT(id) AS aantal
FROM urls
GROUP BY domein
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Beste Jan koehoorn, hartelijk bedankt! ik ga zo gelijk kijken of het werkt, nu weet ik in welke hoek ik het moet zoeken.
http://www.domein.nl/test/pagina
http://www.domein.nl/etc
http://www.domein.nl/test/rood/pag
hij telt nu alleen de tweede aangezien hij na de 2 slashes moet tellen, is dit niet facultatief in te stellen dus 3 of meer x?
Jan Koehoorn schreef op 25.09.2007 23:34:
Een query met een regex wordt misschien best ingewikkeld. Als ik jou was, zou ik gewoon mijn tabel leegtrekken en zoiets doen:
Ik vond het toch wel een leuke puzzel en heb deze query in elkaar gesleuteld, die precies hetzelfde doet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$urls[] = 'http://www.hallo.com/hallo1';
$urls[] = 'http://www.hallo.com/hallo3/jaja';
$urls[] = 'http://www.amsterdam.nl/bezoek/hallo';
$urls[] = 'http://www.rotterdam.nl/vvv';
$stats = array ();
foreach ($urls as $url) {
if (isset ($stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'])) {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal']++;
}
else {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'] = 1;
}
}
foreach ($stats as $key => $val) {
echo '<p>' . $key . ': ' . $val['aantal'] . '</p>';
}
?>
$urls[] = 'http://www.hallo.com/hallo1';
$urls[] = 'http://www.hallo.com/hallo3/jaja';
$urls[] = 'http://www.amsterdam.nl/bezoek/hallo';
$urls[] = 'http://www.rotterdam.nl/vvv';
$stats = array ();
foreach ($urls as $url) {
if (isset ($stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'])) {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal']++;
}
else {
$stats[substr($url, 0, strpos ($url, '/', 7))]['aantal'] = 1;
}
}
foreach ($stats as $key => $val) {
echo '<p>' . $key . ': ' . $val['aantal'] . '</p>';
}
?>
Edit:
Edit:
Edit 2:
Ik vond het toch wel een leuke puzzel en heb deze query in elkaar gesleuteld, die precies hetzelfde doet:
Gewijzigd op 01/01/1970 01:00:00 door femke
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
CREATE FUNCTION domain_of_url (url varchar(255))
RETURNS varchar(255)
RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(TRIM(LEADING
"https://" FROM TRIM(LEADING "http://" FROM TRIM(url))), "/", 1), ":",
1), ".", if(url LIKE "%.org.__%" OR url LIKE "%.net.__%" OR url LIKE
"%.com.__%" OR url LIKE "%.__.us%" OR url LIKE "%.co.__%" OR url LIKE
"%.__.uk%", -3, -2) );
RETURNS varchar(255)
RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(TRIM(LEADING
"https://" FROM TRIM(LEADING "http://" FROM TRIM(url))), "/", 1), ":",
1), ".", if(url LIKE "%.org.__%" OR url LIKE "%.net.__%" OR url LIKE
"%.com.__%" OR url LIKE "%.__.us%" OR url LIKE "%.co.__%" OR url LIKE
"%.__.uk%", -3, -2) );
als je mysql5 draait moet zoiets geen werken
te vinden op
deze site
gevonden op GOOGLE
Edit:
deze functie haalt het domein uit de url en deze kan je dan tllen
deze functie haalt het domein uit de url en deze kan je dan tllen
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven