проблема в том что когда захожу в services.php там есть кратки описания как силка на материал а когда нажимаю на него попадаю на view-services.php а там пусто но должен быть полный текст материала из бд services.php PHP: <?php include("db.php"); $sql = "SELECT title , meta_d, meta_k, text FROM settings WHERE page='settings'"; $result = mysql_query ($sql, $db); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="description" content="<?php echo $myrow['meta_d'];?>"> <meta name="keywords" content="<?php echo $myrow['meta_k'];?>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo $myrow['title'];?></title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="icon" href="img/faviocn.ico" type="imahe/x-icon" /> </head> <body> <table width="690" border="0" align="center" class="main_border"> <!--sayti verev header.php--> <tr> <?php include("blocks/header.php");?> <tr> <td valign="top"><table width="100%" border="0" class="left"> <tr> <!--sayti menu nav.php--> <?php include("blocks/nav.php");?> <!--sayti sayti glavnie parunakututyun cont.php--> <td width="74%" valign="top"> <p> <?php echo $myrow['text'];?> </p> <?php $sql = "select id, title, description from services"; $result=mysql_query ($sql, $db); $myrow = mysql_fetch_array ($result); do { printf ("<table width='90%' border='0' align='center' class='servis'> <tr> <td class='servis2'> <p><a href='view-services.php?id=%s'>%s</a></p><br> </td> </tr> <tr> <td class='servis3'>%s</td> </tr> </table><br><br>", $myrow["id"], $myrow["title"], $myrow["description"],$myrow["text"]); } while ($myrow = mysql_fetch_array ($result)); ?> </td> </tr> </table></td> </tr> <tr> <!--sayti footer footer.php--> <?php include("blocks/footer.php");?> </tr> </table> </body> </html> -------------------------------------------------------------- view-services.php PHP: <?php include("db.php"); ?> <?php if (isset($_GET['id'])) {$id = $_GET['id'];} ?> <?php $sql = "SELECT * FROM services WHERE id='$id'"; $result = mysql_query ($sql, $db); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="description" content="<?php echo $myrow['meta_d'];?>"> <meta name="keywords" content="<?php echo $myrow['meta_k'];?>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo $myrow['title'];?></title> <link href="style.css" rel="stylesheet" type="text/css" /> <link rel="icon" href="img/faviocn.ico" type="imahe/x-icon" /> </head> <body> <table width="690" border="0" align="center" class="main_border"> <!--sayti verev header.php--> <tr> <?php include("blocks/header.php");?> <tr> <td valign="top"><table width="100%" border="0" class="left"> <tr> <!--sayti menu nav.php--> <?php include("blocks/nav.php");?> <!--sayti sayti glavnie parunakututyun cont.php--> <td width="74%" valign="top"> <p> <?php echo $myrow['text'];?> </p> </td> </tr> </table></td> </tr> <tr> <!--sayti footer footer.php--> <?php include("blocks/footer.php");?> </tr> </table> </body> </html>
В том-то и дело что ошибка нету просто пусто там но в url показан http://881sss/view-services.php?id=
Ошибки разные бывают, если тебя что-то не устраивает, то значит там есть ошибка. Ты этот код сам писал?
может быть, да я сам , просто сут в том что когда нажимаю на welcom. должен открыться то что в text написано в бд, но открывается пустоту как на картинке 2
@Karen881, перейди по ссылкам выше, которые тебе дали. почитай, потрать на это минут 30- 60, не будет дальше уже будем разбираться.
Там где формируется ссылка http://881sss/view-services.php?id= возможно есть проблемы или ранее. Я смотрю на printf в первом коде и вижу что в первом аргументе три директивы, но аргументов всего пять, а должно быть четыре, так как в printf первым аргументом передаём формат, а другие аргументы должны быть в количестве директив в формате. Думаю нужно упростить задание и попробуй просто вывести вместо ссылок, только список id. Ещё очень странно тут смотрится do while, вместо while. Нет проверок успешности выполнения mysql запросов. Используются старые функции mysql_* которые уже удалены из PHP7 вместо mysqli или PDO. Дай ссылку на книгу по которой учишь, я попробую дать номера глав, чтобы ты посмотрел ещё раз и смог разобраться как решить свою задачу. Какая версия PHP? Вот тут есть пример с while и mysql_fetch_array https://php.ru/manual/function.mysql-fetch-array.html Я бы как минимум do while заменил на более удобную правильную и наглядную конструкцию: PHP: <?php while ($myrow = mysql_fetch_array ($result)) { ?> <table width='90%' border='0' align='center' class='servis'> <tr> <td class='servis2'> <p><a href='view-services.php?id=<?=$myrow["id"]?>'><?=$myrow["title"]?></a></p><br> </td> </tr> <tr> <td class='servis3'><?= $myrow["description"]?></td> </tr> </table> <br><br> <?php } ?> <?=$foo?> - это аналог echo, просто выводит переменную, очень удобно. Ещё проверяй успешно ли выполнился sql запрос.
спасибо брат я все же не понил сут ошибки моего но твой метод вывода даль то что мне надо было вот это PHP: <?php while ($myrow = mysql_fetch_array ($result)) { ?> <table width='90%' border='0' align='center' class='servis'> <tr> <td class='servis2'> <p><a href='view-services.php?id=<?=$myrow["id"]?>'><?=$myrow["title"]?></a></p><br> </td> </tr> <tr> <td class='servis3'><?= $myrow["description"]?></td> </tr> </table> <br><br> <?php } ?>
Есть printf функция, она принимает аргументы. Первым аргументом должен быть текст который называют формат, потому что мы хотим получить на выходе другой текст в нужном формате, например таблицу, но уже с данными. Вот есть у нас таблица c одной строкой и двумя ячейками HTML: <table> <tr> <td>1</td> <td>2</td> </tr> </table> вместо 1 и 2, мы хотим прописывать значения из базы, значит нам нужно пометить эти места 1 и 2, чтобы заменять их значениями из базы HTML: <table> <tr> <td>%s</td> <td>%s</td> </tr> </table> теперь с помощью printf мы можем туда вставлять наши данные PHP: echo printf("<table><tr><td>%s</td><td>%s</td></tr></table>", "1", "2"); результат HTML: <table> <tr> <td>1</td> <td>2</td> </tr> </table> тут подробнее https://php.ru/manual/function.sprintf.html