2015-11-18 4 views
-1

У меня есть сценарий, в котором я хотел бы создать ссылки на кнопки, чтобы пользователи могли просматривать там собственные рекламные объявления, но количество объявлений будет зависеть от пользователя к пользователю.Создание текстовых кнопок на основе записей mysql

Например, у Джона было бы 3 объявления, хранящиеся в таблице объявлений (имя пользователя, реклама, реклама, реклама, реклама), и у него была бы одна учетная запись в таблице учетных записей (имя пользователя, имя, адрес электронной почты, пароль).

Когда Джон войдет в систему, он увидит 3 кнопки (не физические кнопки, а кнопки гиперссылки), эти имена кнопок будут соответствовать типу рекламы в базе данных mysql. Как только Джон нажимает на любое заданное объявление, он может просмотреть описание объявления, внести изменения в ect (хотя это не относится к моей проблеме).

Я не ищу способы связать рекламу с различными формами, я просто хотел бы знать, как я могу создавать кнопки гиперссылки (текстовые кнопки), которые генерируются в зависимости от того, сколько объявлений у пользователя есть в таблице объявлений (пользователь могут иметь бесконечную рекламу, поэтому бесконечные кнопки гиперссылки, поскольку имя пользователя не является 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

Это действительно трудно читать этот вопрос из-за плохое форматирование. – Trilarion

ответ

1

Вам сначала нужно запросить базу данных, а затем перебирать результаты более в то время как петли для того, чтобы генерировать 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; 
+0

это так хорошо, и похоже, что он будет делать то, что я хочу, но как бы изменить его для работы с mysqli. заранее спасибо. –

+0

Вот вы, я добавил MySQLi – divix

Смежные вопросы