Toon posts:

[php]Hoe de query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het verhaal gaat als volgt:
ik ben een search aan het maken van een eigengemaakt forum.
ik heb 2 tabellen:
topics en Posts,
in topics staat:
code:
1
2
 id  fid  titel  gepostop  laatstepost  auteurID  reacties  
Wijzigen  Verwijderen  1 1 Test 1020453354 1023052068 6 4

en in posts:
code:
1
2
 id  tid  bericht  datum  mail  auteurID  
Wijzigen  Verwijderen  1 1 Test topic :-D 1020453354 1 6

Nu heb ik de query:
PHP:
1
2
3
4
5
6
7
$gettopicinf = $db->query("SELECT topics.fid, posts.tid, topics.titel, topics.auteurID, posts.auteurID, topics. id,
 topics.reacties, topics.laatstepost
 FROM topics 
LEFT JOIN posts 
ON topics.id = posts.tid 
AND topics.auteurID = posts.auteurID 
WHERE  posts.auteurID=$getid");


Nu krijg ik dus als ik zoek alleen maar de TOPICstarter (dus wat er in tabel topic staat) maar ik wil ook graag voor elke post een resultaat maar die krijg ik niet.
Hoe kan ik mijn query aanpassen dat dit kan

Verwijderd

W&G -> P&W

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Wat is "een resultaat" ?
Formateer je query trouwens nog even wat beter, zodat ie in 1x te lezen is.

Ala:
select ...
from ...
Where ...
and ...

Verwijderd

Topicstarter
resultaat is normaal dat hij alleen uit topic degegevens laat zien dus de topicstarter die staat in topic, maar ik wil ook posts als ik die vergelijking: topics.id = posts.tid
weghaal dan krijg ik alleen teveel resultaten (had ik al eerder een topic over gestart even zoeken)

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Het is me nog niet helemaal duidelijk welke resultaten je precies wil zien, maar de filter "AND topics.auteurID = posts.auteurID" is waarschijnlijk niet de bedoeling.
Deze zorgt er namelijk voor dat je alleen maar posts te zien krijgt van de topic starter.

Never underestimate the power of


Verwijderd

Topicstarter
ik zal het nog een keer uitleggen want het is wel onduidelijk:
In topics staan gegevens van een topic. in posts staan de posts, nu heb ik eigenlijk alleen maar posts nodig maar in topic staan nog gegevens die ik nodig heb zoals de titel, laatstepost en aantal reacties. Nu heb ik een query gemaakt maar deze query haalt als ik op user zoek (ik zoek op user en krijg dan een user id terug) dan krijg ik van deze user alleen maar resultaten als hij de topic heeft gestart, en niet als hij alleen maar gereplyed heeft. hoe moet ik mijn query aanpassen zodat ik OOK de replys krijg?

  • momania
  • Registratie: Mei 2000
  • Laatst online: 08:32

momania

iPhone 30! Bam!

probeer dit eens: misschien is dit wat je wilt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$gettopicinf = $db->query("
SELECT 
    topics.fid, 
    posts.tid, 
    topics.titel, 
    topics.auteurID, 
    posts.auteurID, 
    topics. id,
    topics.reacties, 
    topics.laatstepost
FROM 
    topics 
        LEFT JOIN posts ON topics.id = posts.tid 
WHERE  
    posts.auteurID=$getid OR 
    topics.auteurID=$getid
");


Wat je zelf al zei is "of hier in of daar in" en je deed "hier in én daar in"
(even in normale taal :P )
Dan moet je ook wel ergens "OR" gebruiken en niet "AND".

ps. tipje: denk volgende keer eerst "in normale taal"
en logisch na over je query, dat help vaak heel goed
bij het opzetten van je uiteindelijke query ;)

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
momania schreef op 15 augustus 2002 @ 19:11:
probeer dit eens: misschien is dit wat je wilt.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$gettopicinf = $db->query("
SELECT 
    topics.fid, 
    posts.tid, 
    topics.titel, 
    topics.auteurID, 
    posts.auteurID, 
    topics. id,
    topics.reacties, 
    topics.laatstepost
FROM 
    topics 
        LEFT JOIN posts ON topics.id = posts.tid 
WHERE  
    posts.auteurID=$getid OR 
    topics.auteurID=$getid
");


Wat je zelf al zei is "of hier in of daar in" en je deed "hier in én daar in"
(even in normale taal :P )
Dan moet je ook wel ergens "OR" gebruiken en niet "AND".

ps. tipje: denk volgende keer eerst "in normale taal"
en logisch na over je query, dat help vaak heel goed
bij het opzetten van je uiteindelijke query ;)
Aaah hartstikke bedankt!!! er waren een aantal dingen nog fout maar je hebt me op het goede pad gebracht Dankje _/-\o_ _/-\o_
Pagina: 1