Php 基于mysql记录生成文本按钮

Php 基于mysql记录生成文本按钮,php,html,mysql,hyperlink,Php,Html,Mysql,Hyperlink,我有一个场景,我想创建一个按钮链接,允许用户查看自己的广告,但广告的数量将取决于不同用户 例如,John将有3个广告存储在ads表中(用户名、广告ID、广告标题、广告描述),他将有一个帐户存储在accounts表中(用户名、名称、电子邮件、密码) 当John登录时,他会看到3个按钮(不是物理按钮而是超链接按钮),这些按钮名称将对应于mysql数据库中的广告标题。一旦John点击任何给定的广告,他就可以查看广告描述、进行更改等(尽管与我的问题无关) 我不是在寻找将广告链接到不同表单的方法,我只是想

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

例如,John将有3个广告存储在ads表中(用户名、广告ID、广告标题、广告描述),他将有一个帐户存储在accounts表中(用户名、名称、电子邮件、密码)

当John登录时,他会看到3个按钮(不是物理按钮而是超链接按钮),这些按钮名称将对应于mysql数据库中的广告标题。一旦John点击任何给定的广告,他就可以查看广告描述、进行更改等(尽管与我的问题无关)

我不是在寻找将广告链接到不同表单的方法,我只是想知道如何创建超链接按钮(文本按钮),根据用户在广告表中的广告数量生成超链接按钮(用户可以有无限多个广告,因此无限多个超链接按钮,因为用户名不是pk,但广告ID是)。提前谢谢

注意:我已经创建了一个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
用户表示例

username    advertid    adverttitle advertdes
john345     123         ad1         ad1des  
john345     125         ad2         ad2des  
john345     126         ad3         ad3des  
username    name        email       password
john345     john        whocares    why

您首先需要查询数据库,然后在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;
$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;
$userId='john345';
$sql='从广告中选择*,其中用户名=:userId';
$query=$db->prepare($sql);
$result=$query->execute(数组('userId'=>$userId));
$output='';
而($row=$result->fetch(\PDO::fetch\u ASSOC)){
$output.='';
}
echo$输出;
如果不想继续传递此选项,还可以将PDO::FETCH_ASSOC移动到连接设置中

MySQLi:

$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;
$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;
$userId=mysqli\u real\u escape\u字符串('john345');
$sql='SELECT*FROM advert WHERE username='。$userId;
$result=$mysqli->query($sql);
$output='';
而($row=$result->fetch_数组(MYSQLI_ASSOC)){
$output.='';
}
echo$输出;

这太好了,看起来它可以实现我想要的功能,但我如何改变它以与mysqli一起使用呢。提前谢谢。给你,我已经添加了MySQLiIt。由于格式不好,阅读这个问题真的很困难。