#php #mysql #database #post #get
#php #mysql #База данных #Публикация #получить
Вопрос:
У меня есть оператор if, который перебирает все параметры заголовка, и все они являются ссылкой на одну и ту же страницу. Идея заключается в том, что в зависимости от того, какой вариант заголовка нажат на связанной странице, заголовок будет отображаться в тегах h3.
$sql = "SELECT * FROM posts";
$result = mysqli_query($conn, $sql);
$queryResults = mysqli_num_rows($result);
if ($queryResults > 0) {
while ($row = mysqli_fetch_assoc($result)){
$item =$row['title'];
echo "<div>
<a href='pamp;fproject.php' name='project'>
<p>".$item."</p>
</a>
</div>";
}
}
}
if(isset($_POST['project'])){
$id = (isset($_POST['id'])) ? intval($_POST['id']): null;
echo "<br>".$id;
}
?>
Последняя инструкция if была попыткой идентифицировать ссылку, на которую был нажат идентификатор вместо заголовка, но это не сработало.
Страница, связанная с:
<?php
include 'header1.php';
$sql = "SELECT * FROM posts";
$result = mysqli_query($conn, $sql);
$queryResults = mysqli_num_rows($result);
if ($queryResults > 0) {
while ($row = mysqli_fetch_assoc($result)){
for ($i = 0; $i < $queryResults; $i ) {
$item = $row['title'];
echo "<div>
<a href='' name='project'>
<p>".$item."</p>
</a>
</div>";
}
}
}
if(isset($_POST['project'])){
$id = (isset($_POST['id'])) ? intval($_POST['id']): null;
echo "<br>".$id;
}
?>
Комментарии:
1. Передайте идентификатор строки в качестве параметра URL.
<a href="pamp;fproject.php?id=' . $row['id'] . '"
. Затем на следующей странице найдите конкретную строку, используя этот параметр вWHERE
предложении.2. Параметры URL отображаются в $_GET, а не в $ _POST. Кроме того, используйте параметризованный запрос при использовании этого параметра в вашем
WHERE
предложении. В противном случае вы рискуете внедрением SQL и гневом сообщества SO (что хуже, чем внедрение SQL IMO).3. Также обратите внимание, что строки в таблице RDBMS представляют собой неупорядоченные наборы. Если вам нужны строки в порядке, вы должны включить предложение ORDER BY (и / или манипулировать результирующим массивом в коде вашего приложения).
Ответ №1:
Вы можете легко сделать это, передав идентификатор записи в GET. Что вы хотите сделать, это поместить в href свою ссылку, за которой project.php
следует вопросительный знак с идентификатором записи, вот так: 'project.php?id='" . $row["id"] . "
, а затем на странице, на которую дана ссылка, вы можете получить доступ к этой переменной, выполнив postId = $_GET["id"]
SQL-запрос по этому идентификатору
Комментарии:
1. Я не уверен, как выполнить SQL-запрос для этого идентификатора. Я пытался выполнить $ sql = «SELECT * FROM posts WHERE id»; а затем создать переменную $ postID = $ _GET [‘id’]; и повторить эту переменную, но она не может найти идентификатор.
2. Когда вы повторяете идентификатор, вы видите его в строке ссылок? Нравится project.php?id= 10