За последние 24 часа нас посетили 73599 программистов и 10174 робота. Сейчас ищет 2881 программист ...

проблема в том что когда захожу в services.php там есть кратки описания как силка на материал а когд

Тема в разделе "PHP для новичков", создана пользователем Karen881, 30 апр 2016.

  1. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    проблема в том что когда захожу в services.php там есть кратки описания как силка на материал а когда нажимаю на него попадаю на view-services.php а там пусто но должен быть полный текст материала из бд

    services.php



    PHP:
    1. <?php include("db.php");
    2.  
    3. $sql = "SELECT title , meta_d, meta_k, text FROM settings WHERE page='settings'";
    4. $result = mysql_query ($sql, $db);
    5. $myrow = mysql_fetch_array ($result);
    6. ?>
    7. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    8. <html xmlns="http://www.w3.org/1999/xhtml">
    9. <head>
    10. <meta name="description" content="<?php echo $myrow['meta_d'];?>">
    11. <meta name="keywords" content="<?php echo $myrow['meta_k'];?>">
    12. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    13. <title><?php echo $myrow['title'];?></title>
    14. <link href="style.css" rel="stylesheet" type="text/css" />
    15. <link rel="icon" href="img/faviocn.ico" type="imahe/x-icon" />
    16. </head>
    17. <body>
    18.   <table width="690" border="0" align="center" class="main_border">
    19.   <!--sayti verev header.php-->
    20.   <tr>
    21.   <?php include("blocks/header.php");?>
    22.   <tr>
    23.   <td valign="top"><table width="100%" border="0" class="left">
    24.   <tr>
    25.   <!--sayti menu nav.php-->
    26.   <?php include("blocks/nav.php");?>
    27.   <!--sayti sayti glavnie parunakututyun cont.php-->
    28.   <td width="74%" valign="top"> <p>
    29.   <?php  echo $myrow['text'];?>
    30.   </p>
    31. <?php
    32. $sql = "select id, title, description from services";
    33. $result=mysql_query ($sql, $db);
    34. $myrow = mysql_fetch_array ($result);
    35. do {
    36. printf ("<table width='90%' border='0' align='center' class='servis'>
    37.       <tr>
    38.       <td class='servis2'>
    39.       <p><a href='view-services.php?id=%s'>%s</a></p><br>
    40.       </td>
    41.       </tr>
    42.       <tr>
    43.       <td class='servis3'>%s</td>
    44.       </tr>
    45.       </table><br><br>", $myrow["id"], $myrow["title"],  $myrow["description"],$myrow["text"]);
    46.        }
    47.        while ($myrow = mysql_fetch_array ($result));
    48. ?>
    49.   </td>
    50.   </tr>
    51.   </table></td>
    52.   </tr>
    53.   <tr>
    54.   <!--sayti footer footer.php-->
    55.   <?php include("blocks/footer.php");?>
    56.   </tr>
    57.   </table>
    58.   </body>
    59.   </html>
    --------------------------------------------------------------
    view-services.php
    PHP:
    1. <?php include("db.php");
    2. ?>
    3. <?php
    4. if (isset($_GET['id'])) {$id = $_GET['id'];}
    5. ?>
    6. <?php
    7. $sql = "SELECT * FROM services WHERE id='$id'";
    8. $result = mysql_query ($sql, $db);
    9. $myrow = mysql_fetch_array ($result);
    10. ?>
    11. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    12. <html xmlns="http://www.w3.org/1999/xhtml">
    13. <head>
    14. <meta name="description" content="<?php echo $myrow['meta_d'];?>">
    15. <meta name="keywords" content="<?php echo $myrow['meta_k'];?>">
    16. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    17. <title><?php echo $myrow['title'];?></title>
    18. <link href="style.css" rel="stylesheet" type="text/css" />
    19. <link rel="icon" href="img/faviocn.ico" type="imahe/x-icon" />
    20. </head>
    21.   <body>
    22.   <table width="690" border="0" align="center" class="main_border">
    23.   <!--sayti verev header.php-->
    24.   <tr>
    25.   <?php include("blocks/header.php");?>
    26.   <tr>
    27.   <td valign="top"><table width="100%" border="0" class="left">
    28.   <tr>
    29.   <!--sayti menu nav.php-->
    30.   <?php include("blocks/nav.php");?>
    31.   <!--sayti sayti glavnie parunakututyun cont.php-->
    32.   <td width="74%" valign="top"> <p>
    33.   <?php  echo $myrow['text'];?>
    34.   </p>
    35.   </td>
    36.   </tr>
    37.   </table></td>
    38.   </tr>
    39.   <tr>
    40.   <!--sayti footer footer.php-->
    41.   <?php include("blocks/footer.php");?>
    42.   </tr>
    43.   </table>
    44.   </body>
    45.   </html>
     
    #1 Karen881, 30 апр 2016
    Последнее редактирование модератором: 30 апр 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
  3. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Ошибки разные бывают, если тебя что-то не устраивает, то значит там есть ошибка.
    Ты этот код сам писал?
     
  5. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    может быть, да я сам , просто сут в том что когда нажимаю на welcom. должен открыться то что в text написано в бд, но открывается пустоту как на картинке 2
     

    Вложения:

  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.601
    Симпатии:
    423
    Адрес:
    РД, г. Махачкала.
    @Karen881, перейди по ссылкам выше, которые тебе дали. почитай, потрать на это минут 30- 60, не будет дальше уже будем разбираться.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Там где формируется ссылка 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:
    1. <?php
    2. while ($myrow = mysql_fetch_array ($result)) {
    3. ?>
    4.        <table width='90%' border='0' align='center' class='servis'>
    5.               <tr>
    6.               <td class='servis2'>
    7.               <p><a href='view-services.php?id=<?=$myrow["id"]?>'><?=$myrow["title"]?></a></p><br>
    8.               </td>
    9.               </tr>
    10.               <tr>
    11.               <td class='servis3'><?= $myrow["description"]?></td>
    12.               </tr>
    13.        </table>
    14.        <br><br>
    15. <?php
    16. }
    17. ?>
    <?=$foo?> - это аналог echo, просто выводит переменную, очень удобно.
    Ещё проверяй успешно ли выполнился sql запрос.
     
  8. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    спасибо брат я все же не понил сут ошибки моего но твой метод вывода даль то что мне надо было вот это






    PHP:
    1. <?php
    2. while ($myrow = mysql_fetch_array ($result)) {
    3. ?>
    4.        <table width='90%' border='0' align='center' class='servis'>
    5.               <tr>
    6.               <td class='servis2'>
    7.               <p><a href='view-services.php?id=<?=$myrow["id"]?>'><?=$myrow["title"]?></a></p><br>
    8.               </td>
    9.               </tr>
    10.               <tr>
    11.               <td class='servis3'><?= $myrow["description"]?></td>
    12.               </tr>
    13.        </table>
    14.        <br><br>
    15. <?php
    16. }
    17. ?>
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    ну есть документация и инструкция, её нужно точно выполнить, там была ошибка допущена
     
  10. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    а какой, скажи чтоб в дальнейшему знал
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    Есть printf функция, она принимает аргументы.
    Первым аргументом должен быть текст который называют формат, потому что мы хотим получить на выходе другой текст в нужном формате, например таблицу, но уже с данными.

    Вот есть у нас таблица c одной строкой и двумя ячейками
    HTML:
    1.   <tr>
    2.     <td>1</td>
    3.     <td>2</td>
    4.   </tr>
    вместо 1 и 2, мы хотим прописывать значения из базы,
    значит нам нужно пометить эти места 1 и 2, чтобы заменять их значениями из базы

    HTML:
    1.   <tr>
    2.     <td>%s</td>
    3.     <td>%s</td>
    4.   </tr>
    теперь с помощью printf мы можем туда вставлять наши данные

    PHP:
    1. echo printf("<table><tr><td>%s</td><td>%s</td></tr></table>", "1", "2");
    результат

    HTML:
    1.   <tr>
    2.     <td>1</td>
    3.     <td>2</td>
    4.   </tr>
    тут подробнее https://php.ru/manual/function.sprintf.html
     
    Karen881 нравится это.
  12. Karen881

    Karen881 Новичок

    С нами с:
    30 апр 2016
    Сообщения:
    6
    Симпатии:
    0
    спасибо пойду выучу