T
Tom Dollar
27-03-2020 23:37
gewijzigd op 27-03-2020 23:48
CREATE TABLE `ecos` (`id` int(11) NOT NULL AUTO_INCREMENT, `eco_nr` varchar(55) DEFAULT NULL `PE` varchar(11) DEFAULT NULL, PRIMARY KEY (`id`));
INSERT INTO `epos` VALUES (1, 'E_P6639_01', 'RCLA'');
CREATE TABLE `admins` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `mail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`));
INSERT INTO `admins` VALUES (1, 'RCLA', '[email protected] ');
<?php
require_once('../../../private/initialize.php');
require_login();
$eco_set = find_all_ecos();
$admin_set = find_all_admins();
?>
<?php $page_title = 'Eco'; ?>
<?php include(SHARED_PATH . '/staff_header.php'); ?>
<div id="content">
<div class="ecos listing">
<h1>ECO</h1>
<div class="actions">
<a class="action" href="#"></a><br>
<a class="action" href="<?php echo url_for('/staff/ecos/new.php'); ?>">Maak een nieuwe Eco aan.</a>
</div>
<table class="list">
<tr>
<th>ID</th>
<th>Eco nummer</th>
<th>User</th>
</tr>
<?php while($admin = mysqli_fetch_assoc($admin_set){ ?>
<?php while($eco = mysqli_fetch_assoc($eco_set) { ?>
<tr>
<td><?php echo h($eco['id']); ?></td>
<td><a href="#"><?php echo h($eco['eco_nr']); ?></a></td>
<td><?php echo '<a href="mailto:'.$admin['email'].'">'.$eco['PE'].'</a>' ?></td>
</tr>
<?php } ?>
</table>
<?php
mysqli_free_result($eco_set);
?>
</div>
</div>
<?php include(SHARED_PATH . '/staff_footer.php'); ?>
Link gekopieerd
En die twee functies?
Is een join niet beter, zodat je aan 1 query voldoende hebt?
Link gekopieerd
Sorry ik heb in bovenstaande code <td> aangepast met de data die ik wil laten zien. Nu wil ik dat deze data tevens een mail link is, Het mail adres staat in de andere tabel 'admins' in de DB. Moet ik de $vars vergelijken of moet ik dit al van te voren in de DB doen?
Link gekopieerd
Wat voor queries draai je? Zit er er een relatie tussen?
Link gekopieerd
T
Tom Dollar
28-03-2020 00:04
gewijzigd op 28-03-2020 00:05
<?php
function find_all_ecos() {
global $db;
$sql = "SELECT * FROM ecos ";
$sql .= "ORDER BY id ASC";
$result = mysqli_query($db, $sql);
confirm_result_set($result);
return $result;
}
function find_all_admins() {
global $db;
$sql = "SELECT * FROM admins ";
$sql .= "ORDER BY last_name ASC, first_name ASC";
$result = mysqli_query($db, $sql);
confirm_result_set($result);
return $result;
}
<?php>
Link gekopieerd
- Ariën -
28-03-2020 00:06
gewijzigd op 28-03-2020 00:08
Zit er nog een relatie tussen die twee queries? Want een eco lijkt mij toch een admin te moeten hebben?
Link gekopieerd
- Ariën -
28-03-2020 00:25
gewijzigd op 28-03-2020 00:27
Hoe wordt dan bepaald welke rij uit eco bij welke admin hoort? Het lijkt mij niet dat de database daarover moet beslissen?
Link gekopieerd
Daarom had ik deze code:
<?php if($eco['PE'] == $admin['username'] { echo '<a href="mailto:'.$admin['email'].'">'.$eco['PE'].'</a>' } ?>
Maar dat werkt niet.
Ik weet dat ik iets niet goed doe maar zit hier al 3 dagen mee te $%^&&*
Link gekopieerd
Dan kan je beter een relatie maken tussen eco en admins. Dus geef ze beiden een ID-nummer, en pas je query aan met een JOIN.
Dan hoef je geen query in een query te draaien.
[size=xsmall]
Toevoeging op 28/03/2020 00:44:06: [/size]
Ruud Clauwers op 28/03/2020 00:20:26
nee
Dus wel. Dat blijkt uit je code.
Link gekopieerd