@SergeyQA317

Передать параметр для вывода из базы данных[PHP,SQL]?

Приветики!
Изучаю пхп и пишу небольшой проект, больше для приобретения практики.
Вопрос, как вывести на странице вывода, только нужную запись с уникальным идентификатором?
Схема таблицы pages:
id, name, content, author, date

Таблицы с id - каждый раз новая и уникальная.
Главная страница для вывода всех записей:
index.php
....

    $sth = $dbh->prepare("SELECT * FROM `pages` ORDER BY `name`");
    $sth->execute();
    $array = $sth->fetchAll();


foreach ($array as $result_row) {
    echo "<tr>";
    echo "<table><tr><td>" . $result_row["name"]  . "<tr></td></tr>";
    echo "<td>" . $result_row["id"]  . "</td>";
    echo "<td>" . $result_row["author"]  . "</td>";
    echo "<td>" . $result_row["date"]  . "</td></table>";
    echo "</tr>";
}

...

?>


Моя цель:
Сделать страницу, которая выводит определенную новость, например по уникальному идентификатору ID, получая из таблицы
сделал такой код:
code.php

}
$idka = $_GET["id"];
$sth = $dbh->prepare("SELECT content FROM `pages` where id = '$idka'");
$sth->execute();
$array = $sth->fetchAll();


foreach ($array as $result_row) {

    echo htmlspecialchars($result_row["content"]);
}


Это немножко измененый код в выводе новостей, добавил чтобы айдишник брался из ГЕТ параметра....
Только в итоге приходится ручками прописывать параметр - code.php?id=1, code.php?id=2 и т.д...

Хочется чтобы находясь на главной странице, я кликал по "записи" которая передавала этот уникальный айдишник для его последующего вывода
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
echo '<td><a href="code.php?id=' . $result_row["id"]  . '">Edit</a></td>';

только ради бога убери все эти непонятные <table>

А в принимающем скрипте
$sth = $dbh->prepare("SELECT content FROM `pages` where id = ?");
$sth->execute([$_GET["id"]]);
$result_row = $sth->fetch();
echo htmlspecialchars($result_row["content"]);

потому что весь смысл непонятных заклинаний препаре / екзекуте в том, что prepare подготавливает запрос с маркерами, а сами переменные передаются в execute().
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@SergeyQA317 Автор вопроса
в принципе мой бро ФанатПХП сделал норм кодец, убрал лишние две ковычки и заработало

echo 'Удалить';

Спасибо братан!всех обнял
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы