我有一个场景,我想创建按钮链接,以允许用户查看自己的广告,但广告的数量将取决于用户。
例如,John将在广告表中存储3个广告(用户名,广告,广告标题,广告描述),并且他在帐户表中会有一个帐户(用户名,姓名,电子邮件,密码)。
当John登录时,他会看到3个按钮(不是物理按钮而是超链接按钮),这些按钮名称将对应于mysql数据库中的adverttitle。一旦John点击任何给定的广告,他就可以查看广告描述,进行更改等(尽管与我的问题无关)。
我没有找到将广告链接到不同表单的方法,我只想知道如何创建超链接按钮(文本按钮),这些按钮根据用户在广告表中的广告数量生成(用户可以有无限的广告,因此无限的超链接按钮,因为用户名不是pk,但广告是)。提前致谢。
注意:我已经创建了一个html表单,PHP连接到MySQL。我根本不知道如何根据用户的广告数量创建超链接。
广告表示例
username advertid adverttitle advertdes
john345 123 ad1 ad1des
john345 125 ad2 ad2des
john345 126 ad3 ad3des
用户表示例
username name email password
john345 john whocares why
答案 0 :(得分:1)
首先需要查询数据库,然后在while循环中迭代结果,以生成HTML链接:
<强> PDO:强>
$userId = 'john345';
$sql = 'SELECT * FROM advert WHERE username = :userId';
$query = $db->prepare($sql);
$result = $query->execute(array('userId' => $userId));
$output = '';
while ($row = $result->fetch(\PDO::FETCH_ASSOC)) {
$output .= '<a href="advert.php?id='.$row['id'].'">'.$row['name'].'</a>';
}
echo $output;
如果您不想继续传递此选项,也可以将PDO :: FETCH_ASSOC移动到连接设置中。
<强>库MySQLi:强>
$userId = mysqli_real_escape_string('john345');
$sql = 'SELECT * FROM advert WHERE username = '.$userId;
$result = $mysqli->query($sql);
$output = '';
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
$output .= '<a href="advert.php?id='.$row['id'].'">'.$row['name'].'</a>';
}
echo $output;