[php/mysql] query verkorte

Pagina: 1
Acties:

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 14-09 23:54
Ik heb 2 query's in mijn script staan.
code:
1
$query = @mysql_query("SELECT id,titel FROM hoofdgroep");

en
code:
1
$query_subgroep = @mysql_query("SELECT COUNT(*) FROM groep WHERE hoofd_id='$rij[0]'");

Weet iemand hoe ik die twee query's inelkaar kan verwerken. Ik zat zelf te denken aan JOINS maar wat ik geprobeerd had werkt niet. Die 2de query kan meer dan 1 resultaat terug geven.

Het moet een boomstructuur worden. De hoofgroep staat bovenaan met daaronder een aantal subgroepen. Vb.
code:
1
2
3
4
Tweakers
|_ http://www.tweakers.net
|_ http://www.gathering.tweakers.net
|_ http://shop.tweakers.net

De hoofgroep staat in een aparte table en de subgroepen staan in een aparte table.

Mijn JOINS script
code:
1
2
3
$query = @mysql_query("SELECT hoofdgroep.id,hoofdgroep.titel,COUNT(groep.id)
                 FROM hoofdgroep INNER JOIN groep ON 
                 hoofdgroep.id=groep.hoofd_id");

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Om een gewoon veld icm met een group veld (max min count) te gebruiken moet je altijd een GROUP BY gedeelte in je query opnemen.. in dit geval wordt dat waarschijnlijk GROUP BY hoofdgroep.id

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 14-09 23:54
Heb de zaak ff aangepast (nog voor jouw reply). Ik heb nu 3 table
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
table 1. Hoofdgroep
hoofdgroepID     titel
-------------------------
1           Test1
2           Test2

table 2. Subgroep
subgroepID   titel
-------------------------
1           Subtest1
2           Subtest2

table 3. combigroep
id   hoofdgroepID   subgroepID
-----------------------------------
1     1       1
2     2       1
3     2       2

Nu wil ik dus dat de titel van de hoofdgroep wordt weergegeven met daarachter het aantal subgroepen. Dus niet de titel van de subgroepen.

Ik krijg het niet voorelkaar. Ik heb dit al geprobeerd te maken.
code:
1
2
3
SELECT subgroep.titel FROM hoofdgroep,subgroep WHERE
hoofdgroep.hoofdgroepID=groepcombi.hoofdgroepID AND
groepcombi.subgroepID=subgroep.subgroepID

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Je hebt een brak database model :)

id
groepnaam
parent


nu is je query veel makkelijker :)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 14-09 23:54
Op woensdag 30 januari 2002 15:56 schreef Nielsz het volgende:
Je hebt een brak database model :)

id
groepnaam
parent


nu is je query veel makkelijker :)
En wat is de query dan? Ik kan hem alleen bedenken zodat hij twee keer moet worden aangeroepen.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
select title, count (parent) from table group by parent

zoiets iig :)

  • Vulpecula
  • Registratie: April 2001
  • Laatst online: 14-09 23:54
Dus je bedoeld dat ik de hoofdgroepen en subgroepen in een table moet flikkeren?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
jah :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

[edit]
Laat maar, foutje van mij
[/edit
Pagina: 1