В настоящее время я занимаюсь социальной сетью. Я показываю всех зарегистрированных пользователей со следующим кодом. Есть ли лучший способ сделать это?
<?php $query = $db->query("SELECT * from members"); while($r = $query->fetch()) { echo '<div class="col-sm-6 col-md-6 col-lg-3 membersGrid">'; echo '<div class="profileThumb">'; echo '<img width="130" height="130" src="'.$r['profile_pic'].'"/><br>'; echo $r['username'], '<br>'; echo $r['country'], '<br>'; echo '<a class="viewProfile" href="profile.php"><button>View Profile</button></a>'; echo '</div>'; echo '</div>'; } ?>
Я пытаюсь создать ссылку на отдельные страницы профиля для каждого пользователя. В настоящее время каждая ссылка находится внутри цикла while, однако я немного не уверен, как ссылаться на соответствующую страницу профиля. Я предполагаю, что мне нужно добавить переменную в URL. Любое руководство будет высоко оценено.
echo '<a class="viewProfile" href="profile.php"><button>View Profile</button></a>';
Это будет зависеть от того, как ваша страница profile.php обрабатывает переменную GET, которая определяет профиль человека, которого вы показываете. Предположим, что переменная называется id
и что у вас есть строка в таблице ваших членов, также называемая id
(которая действует как уникальный ключ), тогда ваш якорный тег будет выглядеть так:
echo '<a class="viewProfile" href="profile.php?id=' . $r['id']. '"><button>View Profile</button></a>';
Если вы создаете список ссылок на профили пользователей, есть несколько различных вариантов:
Вы можете либо добавить переменную $_GET
в конец вашей ссылки, как ранее упоминалось Ллойдом
echo '<a href="profile.php?if=' . $r['id'] . '">';
или вы можете отправить переменную $_POST
; самый простой способ сделать это – создать список форм:
<?php $query = $db->query("SELECT * from members"); while($r = $query->fetch()) { echo '<div class="col-sm-6 col-md-6 col-lg-3 membersGrid">'; echo '<div class="profileThumb">'; echo '<img width="130" height="130" src="'.$r['profile_pic'].'"/><br>'; echo $r['username'], '<br>'; echo $r['country'], '<br>'; echo '<form action="profile.php" method="post">'; echo '<input type="hidden" value="' . $r['id'] . '" />'; echo '<input type="submit" value="View Profile" />'; echo '</form>'; echo '</div>'; echo '</div>'; } ?>
Извините, если я неправильно понял ваш вопрос, надеюсь, что это поможет.
Сначала извлеките user_id пользователя из базы данных, как вы делаете с запросом. Затем передайте этот идентификатор ссылке профиля:
echo '<a href="profile.php?userid=' . $user_id . '>Linkname</a>';
Затем в profile.php получите эту переменную через:
$id = $_GET['userid'];
Таким образом, вы можете показать профиль соответствующего пользователя в файле profile.php.
Надеюсь, у вас есть идея работать.