Ik zou graag een mail link willen maken van data die ik uit een DB haal, hoe krijg ik dit voor elkaar?
Voorbeeld:
<td><?php echo h($pagina['name']); ?>

De pagina naam is dezelfde naam als in de andere table waar het mail adres in staat.

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'); ?>
 
En die twee functies?
Is een join niet beter, zodat je aan 1 query voldoende hebt?
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?
Wat voor queries draai je? Zit er er een relatie tussen?
<?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>
Zit er nog een relatie tussen die twee queries? Want een eco lijkt mij toch een admin te moeten hebben?
Hoe wordt dan bepaald welke rij uit eco bij welke admin hoort? Het lijkt mij niet dat de database daarover moet beslissen?
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 $%^&&*
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.

Reageren