Hallo,

ik heb een probleem met het uitbreiden van een query. onderstaande query werkt goed, maar ik krijg de uitbreiding niet werkend.

<?php
SELECT p.page_url AS url,
COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = 'dames'
GROUP BY p.page_id
ORDER BY occurrences DESC;

?>

Na de uitbreiding komt de query als volgt uit te zien (zie onderstaande code). echter blijft de query hangen en doet hij dus helemaal niets.

Het is de bedoelint dat "count" word berekend adhv "p.page_url" FROM page p, maar de rest van de gegevens moet ook uit de tabel gehaald worden om naar het scherm geschreven te worden...iets wat me dus niet lukt met deze code:

<?php

SELECT
c.categorie_url AS categorie,
l.leeftijd_url AS leeftijd,
n.naam_oms AS naam,
s.naamsite_url AS naamsite,
x.omschrijving_url AS omschrijving,
p.page_url AS url,
y.website_url AS website,
z.woonplaats_url AS woonplaats,

COUNT(p.page_url) AS occurrences FROM
categorie c, leeftijd l, naam n, naamsite s, omschrijving x, page p, website y,
woonplaats z, word w, occurrence o

WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = 'dames'

GROUP BY p.page_id
ORDER BY occurrences DESC;

?>


met de eerste code (die werkt) kan ik de volgende regel naar het scherm schrijven

<?php
print "$i. <a href='".$row['url']."'>".$row['url']."</a>\n";
?>

echter hoort er bij $row['url']. dus ook een omschrijving, naam en dergelijk dus moet ik uiteindelijk iets als dit naar het scherm kunnen schrijven:

<?php
print "$i. <a href='".$row['url']."'>".$row['url']."</a>\n";
print "$i. <a href='".$row['url']."'>".$row['naam']."</a>\n";
print "$i. <a href='".$row['url']."'>".$row['omschrijvingl']."</a>\n";
?>

iemand enig idee hoe ik dit voor elkaar kan schrijven en wat ik momenteel fout doe ?

groeten

Robin




ik zat ook aan het volgende te denken, maar ook dat werkte niet :

<?php

SELECT * FROM database AND
COUNT(p.page_url) AS occurrences

FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = 'dames'

GROUP BY p.page_id
ORDER BY occurrences DESC;


?>
Het lijkt erop dat er niks klopt van je datamodel. Je hebt allemaal aparte tabellen voor naam, naamsite, omschrijving, etc? Dit zijn gewoon allemaal kolommen die in 1 tabel thuishoren.

En trouwens zoals je je query nu hebt, je selecteerd gegevens uit 10 verschillende tabellen maar waar is de afhankelijkheid tussen die tabellen gebleven? Ik zie er maar 2...
ieder tabel heeft zijn eigen id nummer, dus bijvoorbeeld categorie bestaat uit: categorie_url en categorie_id

1 regel bestaat dus uit = page_id categorie_id, naam_id etc....

Maar hoe beslis je dan of iets in 1 kolom thuis hoort of dat je het in meerdere tabellen moet opsplitsen ?

Denk je dat ik het beste iets als dit kan doen :

tabel page maken bestaande uit:

- page id
- url
- omschrijving
- naam
- etc

en dan een query in de richting van dit ?

<?php
SELECT p.page_url AS url,
p.page_omschrijving AS omschrijving,
p.page_naam AS naam,
p.page_etc AS etc,
COUNT(*) AS occurrences
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = 'dames'
GROUP BY p.page_id
ORDER BY occurrences DESC;

?>
Maar hoe beslis je dan of iets in 1 kolom thuis hoort of dat je het in meerdere tabellen moet opsplitsen ?
Daar hebben we een hele mooie tutorial over normaliseren voor.

Hoe jouw datamodel eruit moet komen te zien kan ik je zo niet zeggen, ik weet immers niet welke gegevens je hebt, wat je met die gegevens wilt en wat de onderlinge relatie tussen die gegevens is.

Reageren