Hallo.

Ik zit met hetvolgende probleem:
Ik heb een database met 2 tabellen.
In die tabellen staan namen. Deels dezelfde, maar er zijn ook die alleen in de eerste tabel voorkomen.
Ik wil graag een tabel afdrukken op een pagina, waarin alle namen naast elkaar worden afgedrukt. Dezelfde namen naast elkaar en naast de namen die alleen in de eerste tabel voorkomen een lege cel in de af te drukken tabel op het scherm.
Is dit mogelijk en zo ja, hoe dan?
Wat ik tot dusverre heb gezien is een tabel waarin de namen naast elkaar staan, maar waar de namen van de eerste tabel niet allemaal in staan omdat alleen alle namen van de tweede tabel zijn afgedrukt (bijv. 100) en de rest (bijv 50 van de 150) van de eerste tabel is niet afgedrukt.
De andere variant: alle namen worden afgedrukt, maar niet naast elkaar. Eerst (bijv. 150) in de linker cel en rechts niets en na de namen uit de eerste tabel, de namen uit de tweede tabel in de rechter cel. Niet ernaast maar eronder.
Waarom twee tabellen? Wat als iemand van naam veranderd? Waarom kan je niet een tabel maken met ongeveer de volgende instelling:

gebruikerid int auto_increment,
naam varchar(200),
in_tabel1 tinyint(1),
in_tabel2 tinyint(1)


of in plaats van de laatste twee
tabelcode int(1)

Waarbij tabelcode 1 = tabel 1, tabelcode 2 = tabel 2, tabelcode 3 tabel 1&2, dit laat ik aan jouw fantasie over. Ik snap de grap niet van dezelfde info in twee tabellen zetten. Dit ziet er slecht en slap uit.

Grtz,

Arend
Met alle respect, jij hoeft ook niet te snappen waarom ik bepaalde info in één tabel zou willen hebben. Ik zou graag de bovengenoemde tabel willen. Als dat werkt met jouw code vind ik het goed, zo niet dan heb ik er niets aan. Dit is verder niet kwaad bedoeld, maar ik zou graag zelf bepalen wat ik in welke tabel wil hebben en waarom.

Met vriendelijke groet.
Vergeet het bovenstaande bericht. Ik snap nu ineens wat je bedoelt. Ik weet neit of je wel eens hebt gewerkt met PostNuke, maar die maakt een database aan met heel erg veel gegevens en tabellen. Eén tabel met gebruikersnamen voor de site en één voor het forum. In principe staan in beide dezelfde namen, wanneer mensen zich aan hebben gemeld voor toegang tot de site en het forum hebben bezocht. Zolang mensen niet het forum bezocht hebben staat hun naam echter alleen in de eerste tabel. Om nou een beetje overzicht te houden wil ik de relevante info voor mezelf in één overzicht hebben, dus:
Wie heeft welke gebruikersnaam (staat dus in de eerste tabel, die met aanmeldingen voor de site), heet die persoon het forum bezocht (staat in de tweede tabel, die voor het forum), welke rechten heeft die persoon (staat in een andere tabel) en nog meer van dit soort gegevens.
De reden dat ik er niet meer uitkom is dan ook dat het overzicht heel snel verloren gaat, wanneer ik steeds die database door moet spitten voor 200+ namen. Ik hoop dat je het nu een beetje snapt. Nogmaals, vergeet alsjeblieft bovenstaand bericht, ik had je bericht verkeer begrepen. Sorry.

Met vriendelijke groet
Ik weet niet wat je bedoeld met 'steeds die database moet spitten voor 200+ namen'? Maar in principe doet mysql dat voor je als je goede queries schrijft, en dat je de juiste index'es hebt.


gebruikerid int auto_increment,
gebruikersnaam varchar(200),
gebruikerswachtwoord varchar(20),
forum_bezocht tinyint(1),
kolommen_met_rechten,

Wanneer je overzicht wilt houden kan je het zelfde als "SELECT * FROM `tabel2`" gelijkstellen aan "SELECT * FROM `gebruikers` WHERE forum_bezocht = 1".

Dit is beter, omdat het minder ruimte inneemt, sneller is en je slaat niet twee keer dezelfde gegevens op. Bovendien kan je je vraagstelling dan simpel uitvoeren met -één- query.

Grtz,

Arend

Reageren