Это не только возможно, это очень распространенная функциональность, которая описана во многих PHP руководствах. Возможно, вы уже использовали одно или несколько руководств, которые не охватывают эту функцию, но вам всегда предлагается изучить больше руководств и примеров.
На высоком уровне вам, по сути, нужно иметь каждое ссылка включает идентификатор записи, которую вы хотите отобразить. Например, часть вашего echo
может включать что-то вроде этого:
echo '<a href="product.php?id=' . $row['id'] . '">Click here</a>';
Что даст что-то вроде:
<a href="product.php?id=123">Click here</a>
(Есть разные способы сделать это. по сравнению с двойными кавычками, синтаксисом heredo c и т.д. c. Лично я предпочитаю сохранить HTML как spe c, что означает двойные кавычки на стороне клиента. Но в любом случае разметка для клиента в порядке.)
Когда пользователь нажимает на ссылку, параметр строки запроса id=123
следует за пользователем на эту product.php
страницу. Затем в коде на этой странице вы должны прочитать значение из массива $_GET
:
$id = $_GET['id'];
(Для других типов данных, отправленных в запросе, существуют другие массивы. Параметры строки запроса URL являются частью $_GET
.)
Затем вы использовали бы это значение в запросе к базе данных. Сам запрос может выглядеть так (заимствовано из отличного ответа здесь на вопрос о SQL инъекции, который определенно стоит прочитать новичкам):
$stmt = $conn->prepare('SELECT * FROM products WHERE id=?');
$stmt->bind_param('i', $id); // 'i' specifies the variable type => 'integer'
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// Do something with $row
}
Различные технологии баз данных по-разному связывают значения с запросами. Но как новичку сейчас самое время привыкнуть к привязке значений , а не к конкатенации строк. Именно здесь вышеупомянутый вопрос / ответы о SQL инъекции становится чрезвычайно полезным знанием.
Внутри этого l oop (даже если есть только одна запись, хотя вы можете захотеть провести некоторые проверки, чтобы убедиться, что только один или хотя бы один и ответьте соответствующим образом в противном случае) вы можете отображать данные об этой записи, аналогично тому, как вы уже это делаете для нескольких записей на своей главной странице.