Maak van $sql data een link met data van ander table
Code (php)
1
<?php $sql = SELECT `admins`.`id`, `admins`.`autograph`, `ecos`.`admin_id`, `admins`.`email` FROM `admins`, `ecos`; ?>
Gewijzigd op 28/03/2020 01:00:40 door Ruud Clauwers
Dus koppel je admins eens aan eco's met een ID-nummer.
Gewijzigd op 28/03/2020 01:10:41 door - Ariën -
Sorry dat ik niet helemaal mee kan komen maar heb sinds kort de draad opgepakt.
Ik heb nu een join gemaakt in mijn query, krijg vervolgens de data te zien.
Loop nu ook een het volgende aan:
Code (php)
1
2
3
4
5
2
3
4
5
CREATE TABLE `ecos` (`id` int(11) NOT NULL AUTO_INCREMENT, `user1` varchar(55) DEFAULT NULL, `user2` varchar(11) DEFAULT NULL, `user3` varchar(55) DEFAULT NULL PRIMARY KEY (`id`));
INSERT INTO `ecos` VALUES (1, 'Ruud', 'Jan', 'Jaap');
CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `mail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`));
INSERT INTO `users` VALUES (1, 'RCLA', '[email protected]'),(2, 'Jan', '[email protected]');
INSERT INTO `ecos` VALUES (1, 'Ruud', 'Jan', 'Jaap');
CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `mail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`));
INSERT INTO `users` VALUES (1, 'RCLA', '[email protected]'),(2, 'Jan', '[email protected]');
Code (php)
Wat ik nu wil bereiken is dat ik op deze pagina de users per eco laat zien, wanneer op de naam wordt geklikt moet ook email met adres verschijnen..
Ik krijg nu steeds de link niet gelegd tussen de $eco['user1'] en $admins['email'].
Gewijzigd op 30/03/2020 00:58:52 door - Ariën -
Veelgestelde Vragen.
Hoe ziet je Join er dan uit? En waarom heb je dan nog $user én $eco?
Dat lijkt me dus juist overbodig omdat je die in één keer op wilt halen.
De tags werken hier met blokhaken [ en ]. Zie ook de opmaakcodes in de Hoe ziet je Join er dan uit? En waarom heb je dan nog $user én $eco?
Dat lijkt me dus juist overbodig omdat je die in één keer op wilt halen.
En wat doet confirm_result_set?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
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['user2'].'</a>'; ?></td>
</tr>
<?php }
} ?>
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['user2'].'</a>'; ?></td>
</tr>
<?php }
} ?>
Is die code nu die functie? Of heb je je code aangepast? Want dit zier er goed uit.
Alleen ik krijg ik nu niet het juiste mail adres bij de juiste user en ik krijg alle records te zien.
Mooi dit is gelukt. Nog 1 vraag. Klopt het dan ook dat ik de query meermaals moet uitvoeren omdat ik meerdere users heb?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?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);
?>
$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);
?>
Waarom heb je nu opeens twee velden met users (user1 en user2)?
Code (php)
1
2
3
4
2
3
4
<?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.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?
Maar wat is het verschil tussen user1 en user2?
(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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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 }
} ?>
$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
Gewijzigd op 01/04/2020 00:45:10 door Ruud Clauwers
Sorry, maar er staat nog steeds een vraag open.....
welke vraag?
- Ariën - op 30/03/2020 13:31:51:
Huh?!?
Waarom heb je nu opeens twee velden met users (user1 en user2)?
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?
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.
Gewijzigd op 01/04/2020 01:29:23 door - Ariën -
Dan maakt het niet uit of er 1, 3 of wel 100 users aan een "eco" gekoppeld worden.
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