Yesss!
Mooi dit is gelukt. Nog 1 vraag. Klopt het dan ook dat ik de query meermaals moet uitvoeren omdat ik meerdere users heb?
<?php
$sql = "SELECT ecos.* , users.user1, users.email FROM ecos INNER JOIN users ON ecos.user1 = users.user1";
$result_user1 = mysqli_query($db, $sql);
$sql = "SELECT ecos.* , users.user2, users.email FROM ecos INNER JOIN users ON ecos.user2 = users.user2";
$result_user2 = mysqli_query($db, $sql);
?>
Link gekopieerd
Huh?!?
Waarom heb je nu opeens twee velden met users (user1 en user2)?
Link gekopieerd
<?php
$sql = "SELECT ecos.* , users.user1, users.email FROM ecos INNER JOIN users ON ecos.user1 = users.user1";
$result_user1 = mysqli_query($db, $sql);
?>
Maar hoe krijg ik nu het mail adres van user2 correct?
Link gekopieerd
Je vergeet user2 ook in je SELECT te benoemen.
Maar wat is het verschil tussen user1 en user2?
Link gekopieerd
T
Tom Dollar
01-04-2020 00:44
gewijzigd op 01-04-2020 00:45
Ik heb de tabel users
(id, naam, short, email)
Hier staan in:
(id, Ruud, ru,
[email protected] )
(id, Piet, pi,
[email protected] )
(id, Linda, li,
[email protected] )
tabel ecos
(id, naam, user1, user2, user3)
hier staat in:
(id, nieuw, ru, pi, li)
(id, nieuw, pi, ru, li)
Ik wil nu een query waarbij ik alle ecos en user te zien krijg gelinkt aan short en user1, user2, user3.
Maar user is dan ook meteen de link naar mail
<?php
$sql = "SELECT ecos.*, users.* FROM ecos INNER JOIN users WHERE ecos.user1 = users.short";
$result = mysql_query($sql);
while($result = mysqli_fetch_assoc($results)) {
?>
<tr>
<td><?php echo $result['id']; ?></td>
<td><?php echo '<a href="mailto:'.$result['email'].'">'.$result['user1'].'</a>'; ?></td>
<td><?php echo '<a href="mailto:'.$result['email'].'">'.$result['user2'].'</a>'; ?></td>
<td><?php echo '<a href="mailto:'.$result['email'].'">'.$result['user3'].'</a>'; ?></td>
</tr>
<?php }
} ?>
Nu krijg ik wel alles te zien in mijn while loop maar de mails in de 2e en 3e rij komen dan niet meer overeen met de users
Link gekopieerd
Sorry, maar er staat nog steeds een vraag open.....
Link gekopieerd
- Ariën -
01-04-2020 01:25
gewijzigd op 01-04-2020 01:29
Die ik hierboven al twee keer gesteld heb.
- Ariën - op 30/03/2020 13:31:51
Huh?!?
Waarom heb je nu opeens twee velden met users (user1 en user2)?
- Ariën - op 31/03/2020 23:13:52
Je vergeet user2 ook in je SELECT te benoemen.
Maar wat is het verschil tussen user1 en user2?
Ik zet hoog in dat je databasestructuur verkeerd is opgebouwd doordat je horizontaal werkt, in plaats van verticaal. Als een eco (wat is dat eigenlijk, uit interesse?) meerdere users heeft, dan moet je een aparte tabel maken
users_eco waarin je de users koppelt met eco's.
Link gekopieerd
je zou een koppeltabel tussen eco en user moeten hebben.
Dan maakt het niet uit of er 1, 3 of wel 100 users aan een "eco" gekoppeld worden.
tabel eco_user
eco_id
user_id
Daarbij heeft eco_id een foreign key relatie met id van de tabel ecos en user_id met id in users
en dan wordt de query
SELECT e.naam,
u.naam username,
u.email
FROM ecos e
JOIN eco_user eu ON eu.eco_id = e.id
JOIN users u ON u.id = eu.user_id
WHERE e.id = 2;
Link gekopieerd