如果数组是从数据库生成的,如何超链接数组的每个元素?

时间:2014-07-06 02:56:26

标签: php arrays mysqli hyperlink

在我的网站中,用户可以创建池(组)。显然,当他们创建池时,池信息(池名称等)将被发送到我的数据库。然后在用户的配置文件中,我从数据库中检索它们所在的所有池并在页面上显示它们。

但是,目前,这些只显示为文字。我希望它们被超链接到一个单独的页面,该页面是池的配置文件。任何人都可以帮我这样做吗?我的代码如下。

<?php
    session_start();


    $conn = mysqli_connect("localhost","root","root","UltimateLeague");

    $query = ("SELECT * FROM userpool WHERE userid=".$_SESSION['user_id']."");
    $result = mysqli_query($conn, $query); //Finding the pools that the current user is in

    $poolid = array(); //Creating an array of these pools

    while ($row = mysqli_fetch_assoc($result)) {
        $pool_id[] = $row['pool_id'];

    }


    $ids = join(',',$pool_id); //Finding the names of these pools in a separate table
    $query2 = "SELECT * FROM pools WHERE pool_id IN ($ids)";
    $result2 = mysqli_query($conn, $query2);

    $pool_name = array(); //Creating an array of these names
    if (mysqli_num_rows($result2) > 0) {
        while ($row2 = mysqli_fetch_assoc($result2)) {
        $pool_name[] = $row2['pool_name'];
    }

    }

?>

然后,显示池:

<html>

<p><h5>Below is a list of pools that you are currently in.</h5></p>
  <ul>
     <?php foreach( $pool_name as $pool): ?>
         <ul>
         <?= $pool ?>
         </ul>
     <?php endforeach; ?>
  </ul>

</html>

所以在这个循环中,我如何将每个$ pool链接到一个单独的页面?

提前致谢。

1 个答案:

答案 0 :(得分:0)

将池ID放在链接的URL中。

<ul>
<?php while ($row2 = mysql_fetch_assoc($result2): ?>
    <li>
    <a href="show_pool.php?id=<?= $row2['pool_id'] ?>"><?= $row2['pool_name'] ?></a>
    </li>
<?php endwhile; ?>
</ul>

您应该将两个查询合并为一个JOIN:

SELECT p.pool_id, p.pool_name
FROM userpool AS u
JOIN pools AS p ON u.pool_id = p.pool_id
WHERE u.userid = {$_SESSION['user_id']}