2015-12-23 2 views
0

У меня есть php-сайт блога с базой данных mysql. В этом блоге есть несколько уроков. Там есть таблица «уроки», в которой содержатся идентификатор, заголовок, текст урока и т. Д. Когда я показываю последние уроки на главной странице, он работает правильно.

подключиться к БД, как это:

<?php 
$db = mysql_connect ("localhost", "root", ""); 
mysql_select_db("kursach", $db); 
mysql_query("SET NAMES utf8"); 

$result = mysql_query ("SELECT title, meta_k, meta_d, text FROM settings 
WHERE page='index' ", $db); 

$myrow = mysql_fetch_array($result); 
?> 

и отобразить их с помощью цикла:

<?php 
$result = mysql_query("SELECT id, title, date, description FROM lessons", $db); 

$myrow = mysql_fetch_array($result); 
do { 
    printf ("<div class='right-column-content'> 
    <div class='right-column-content-heading'> 
     <a href='lesson_view.php?%s'><h1>%s</h1></a> 
     <h2>%s </h2> 
    </div> 
    <div class='right-column-content-content'> 
     <p>%s</p> 
     <div class='button'><a href='lesson_view.php?%s' >Читати далі</a></div> 
    </div> 
    </div>", $myrow['id'], $myrow["title"], $myrow["date"], $myrow["description"], $myrow["id"]); 
} 
while($myrow = mysql_fetch_array($result)) 
?> 

Screenshot

У меня также есть файл для полного содержания урока - lesson_view. PHP. Как вы можете видеть на приведенном выше коде, я отправить идентификатор урока ссылку на этот урок:

lesson_view.php?%s 
    $myrow["id"] 

В lesson_view.php я подключиться к БД и получить идентификатор так:

<?php 
$db = mysql_connect ("localhost", "root", ""); 
mysql_select_db("kursach", $db); 
mysql_query("SET NAMES utf8"); 

if (isset($_GET['id'])) {$id = $_GET['id'];} 

$result = mysql_query("SELECT * FROM lessons WHERE id = '$id' ", $db); 

$myrow = mysql_fetch_array($result); 
?> 

И использовать этот код, чтобы отобразить данные:

<div class="right-column-content"> 
    <div class="right-column-content-heading"> 
     <h1><?php echo $myrow['title'] ?></h1> 
     <h2><?php echo $myrow['date'] ?> </h2> 
     <h2><?php echo $myrow['author'] ?> </h2> 
    </div> 
    <div class='right-column-content-content'> 
     <p><?php echo $myrow["text"] ?></p> 
    </div> 
    </div> 

проблема заключается в том, когда я пытаюсь посмотреть полное содержание урока (для exaple, /lesson_view.php?1), он не отображает данные : нет названия, нет текста, ничего. Я пробовал этот запрос непосредственно в MySQL, и он работает, поэтому, возможно, есть некоторая ошибка в php-коде, который я не могу найти. Будем благодарны за любую помощь.

enter image description here

P.S. Я новичок на php.

+0

Ваша логика if ошибочна, в lesson_view.php ваш запрос и выполнение запроса должны быть помещены внутри предложения if, потому что если ваш '$ id' не установлен в условии if, вы все равно получите« Уведомление неопределенное », потому что вы вызываете' $ id', который не задано. (И это, скорее всего, приведет к сбою вашего запроса). Кроме того, вы должны перейти от 'mysql' к' mysqli' или 'PDO' без причины, чтобы узнать устаревшие/плохие habbits с самого начала. – Epodax

ответ

2

, если вы хотите иметь в $_GETid тогда ваша ссылка должна быть вместо lesson_view.php?%s ->lesson_view.php?id=%s

, например lesson_view.php?id=5 означает, что $id = $_GET['id'] даст 5, $ ID = 5;

1
<a href='lesson_view.php?%s'><h1>%s</h1></a> 

Вы не указали переменную 'id'.

Изменение ссылки на

<a href='lesson_view.php?id=%s'><h1>%s</h1></a> 
0

Единственная проблема в том, что ваш printf() есть 5 аргументов, и вы используете только четыре и четвёртую одно описание, которое вы используете здесь

<div class='button'><a href='lesson_view.php?%s' >Читати далі</a></div> 

решение заключается в том, что:

printf ("<div class='right-column-content'> 
<div class='right-column-content-heading'> 
<a href='lesson_view.php?%s'><h1>%s</h1></a> 
<h2>%s </h2> 
</div> 
<div class='right-column-content-content'> 
<p>%s</p> 
<div class='button'><a href='lesson_view.php?id=%s' >Читати далі</a></div> 
</div> 
</div>", $myrow['id'], $myrow["title"], $myrow["date"], $myrow["id"], $myrow["description"]); 

Переместите $myrow["id"] в четвертом положении, вы получите ID в качестве строки запроса.

А также добавить ID в строка запроса.

+0

@ artur-komendacki: просто измените второй аргумент – devpro

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