基于mysql记录生成文本按钮

时间:2015-11-18 10:14:35

标签: php html mysql hyperlink

我有一个场景,我想创建按钮链接,以允许用户查看自己的广告,但广告的数量将取决于用户。

例如,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

1 个答案:

答案 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;