[php / mySQL] Controleren of record childs heeft

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-05 22:10
Dacht dit wel in google of search te kunnen vinden, maar niet dus.

Ik heb een standaardquery om de childnodes met een bepaalde parent uit de database te halen, geen enkel probleem, werkt prima. Alleen nu wil ik graag vantevoren weten of er nog meer childnodes zijn van het HUIDIGE geselecteerde record (dus niet de parent).

Nu heb ik gewoon dit:
code:
1
2
'SELECT * FROM `tblVeilingCategorien` `tblVC` 
   WHERE `tblVC`.`intParentId` = '.$iParentId

Ik heb dit al geprobeerd uit te breiden met een subquery, maar dit draaide nergens op uit. Om voor iedere gevonden record nog apart weer een query uit te voeren, vind ik niet de ideale oplossing, iemand hier een handige oplossing voor?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21:17

Janoz

Moderator Devschuur®

!litemod

Tja, specifieke dingen zul je toch echt zelf moeten bedenken. Daar is niet eicht een kant en klare google query voor te verzinnen.

Je zou een outer join kunnen gebruiken en dan het aantal kinderen tellen. Je zult dan nog wel even moetn kijken wat count met een null doet.

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


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Dan geeft COUNT heel braaf een 0 terug.

Leet overigens asjeblieft af om backticks te gebruiken in je SQL-statements, nergens goed voor. Is in mijn optiek alleen een vieze manier om stieken gereserveerde woorden als tabel/kolomnamen te gebruiken.

Maar je kunt een LEFT JOIN gebruiken om 'childrens' te tellen van een parent. Als een child mogelijk ook weer children heeft, kun je 2 joins gebruiken, etc.

Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-05 22:10
Zolang de backticks geen probleem zijn, vind ik ze juist handig om te gebruiken. En om nou zo'n backtick meer te typen ben ik ook niet te lui.

Ben inderdaad bang dat bovenstaande de enige oplossingen zijn. Ik hoopte dat het misschien mogelijk was om iets te doen alsof er een geldige reference bestond oid. Maar dat wordt dus joins/subqueries.. Kweet niet, ik heb daar iets tegen.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

frickY schreef op vrijdag 13 januari 2006 @ 15:15:
Leet overigens asjeblieft af om backticks te gebruiken in je SQL-statements, nergens goed voor. Is in mijn optiek alleen een vieze manier om stieken gereserveerde woorden als tabel/kolomnamen te gebruiken.
offtopic:
Backticks gebruiken is IMO anders een stuk duidelijker en netter, en àls je dan per ongeluk een reserved wordt gebruikt (denk aan "user"), dan maakt het geen fluit uit omdat je er rekening mee houdt door die backticks te gebruiken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.