[MYSQL][PHP] Query probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MiezeL
  • Registratie: Augustus 2002
  • Laatst online: 04-03 12:39
Hallo,

ik ben bezig met een pagina waar je nieuwsberichten kan zien, waarbij de user in de goede groep moet zitten om ze te zien.

Ik heb devolgende query hieruit gemaakt:
PHP:
1
2
3
4
5
6
$tmpgroup = $_SESSION["icagroup"];
$tmpid = $_SESSION["userid"];

$query = "SELECT web_news.*,web_users.name,web_users.icagroup as usergroup,web_icagroups.name as groupname FROM web_news,web_users,web_icagroups 
WHERE web_users.id = web_news.user AND web_icagroups.id = web_news.group AND (web_news.group = '0' OR web_news.group = '$tmpgroup' OR (SELECT icagroup FROM web_users WHERE id = '$tmpid' LIMIT 1) = '0')
ORDER BY date DESC";


Probleem:
Als de web_news.group 0 is, dan krijg ik geen records omdat ik geen web_icagroups.id 0 heb.
Het is geen optie om deze aan te maken.
Het idee is dat als de nieuwsgroup 0 is iedereen het mag zien, vandaar de 'AND web_news.group = '0''

Is er een manier dat ik WEL alles zie ondanks dat hij geen naampje bij de groep kan vinden?

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Je maakt in je query gebruik van impliciete (inner) joins, je hebt echter een left join nodig daar je ook nieuwsberichten wil selecteren die niet in een categorie vallen. Wat je precies probeert te bereiken met het userid ontgaat me even, maar een query die de nieuwsberichten ophaalt bij gegeven groupid $tmpgroup ziet er ongeveer zo uit:
SQL:
1
2
3
4
5
6
7
8
9
10
11
SELECT 
   web_news.*,
   web_users.name,
   web_users.icagroup as usergroup,
   web_icagroups.name as groupname 
FROM web_news
   INNER JOIN web_users ON (web_users.id = web_news.user)
   LEFT JOIN web_icagroups ON (web_news.group = web_icagroups.id)
WHERE 
   web_news.group = 0 OR web_news.group = '$tmpgroup' 
ORDER BY date DESC

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

  • MiezeL
  • Registratie: Augustus 2002
  • Laatst online: 04-03 12:39
k toppie thnx