data uit andere tabel laden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

07/08/2017 19:20:45
Quote Anchor link
Hallo,

Ik heb twee tabellen users en autorisatie.
In de tabel users staat naam enz. en een kolom autorisatie, dit is een int.
In de tabel autorisatie staan de tabellen auto_id en rol.

Een voorbeeld is:
users:
naam autorisatie
jan 1
piet 2

autorisatie:
auto_id rol
1 admin
2 webbeheer

Ik wil de tabel users selecteren, hierbij staat in kolom autorisatie een 1.
De bedoeling is dat hier dan admin of webbeheer komt te staan, dus dat je dan de rol uit de tabel autorisatie haalt.

Ik heb geprobeerd dit te maken met een subquery maar dit werkt niet. hij laat alleen een 1 zien.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = "SELECT naam, autorisatie  FROM users WHERE autorisatie IN (SELECT auto_id FROM autorisatie WHERE rol = 'admin')";


Mijn vraag is: hoe kan ik de rollen uit tabel autorisatie halen en bij het selecteren van de tabel users dat er de rollen getoond worden i.p.v. cijfers?

alvast bedankt.
 
PHP hulp

PHP hulp

27/04/2024 03:10:24
 
Ben van Velzen

Ben van Velzen

07/08/2017 20:28:56
Quote Anchor link
Door niet van dit soort queries te schrijven maar JOINs toe te passen. Zie je eerdere topics, dit soort queries is een enorme performance killer.
Gewijzigd op 07/08/2017 20:35:12 door Ben van Velzen
 
Peter K

Peter K

08/08/2017 09:04:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
    users.naam,
    autorisatie.rol
FROM
    users
    INNER JOIN autorisatie
WHERE
    users.autorisatie = autorisatie.auto_id


Je ziet echter wel dat het wat onduidelijk is door de opzet van je database.

Persoonlijk zou ik het als volgt doen:
Tabel gebruiker:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
gebruiker_id
naam
rol_rol_id


Tabel rol:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
rol_id
omschrijving
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.