За последние 24 часа нас посетили 33583 программиста и 1515 роботов. Сейчас ищут 1003 программиста ...

Помогите разобраться с ностями

Тема в разделе "PHP для новичков", создана пользователем ArtemPetesburg, 11 май 2018.

  1. ArtemPetesburg

    ArtemPetesburg Новичок

    С нами с:
    11 май 2018
    Сообщения:
    48
    Симпатии:
    2
    Адрес:
    Санкт-Петербург
    Здравствуйте, у меня такая проблема, искал на многих сайтах, наконец сам догадался как сделать вывод новостей по очереди, теперь проблема в следующем.
    1) В базе данных есть 4 гафы для новостей, это id, title - Заголовок, intro_text - Начальный текст который выводиться на главной страницы со списком новостей и full_text который должен выводиться на отдельной странице определенной новости. Так вот опрос в том что бы как сделать что бы при нажатии на заголовок нововсти открывалась отдельная страница с новостью и туда выводился уже full_text.
    Не понятен именно тот момент как создается именно новая страница с отделным id и присваивается именно данная информация ей из БД, вот код вывода новостей....
    Код (Text):
    1. <?php
    2.  
    3.     //Устанавливаем доступы к базе данных:
    4.         $host = 'localhost'; //имя хоста, на локальном компьютере это localhost
    5.         $user = 'root'; //имя пользователя, по умолчанию это root
    6.         $password = ''; //пароль, по умолчанию пустой
    7.         $db_name = 'test'; //имя базы данных
    8.  
    9.     //Соединяемся с базой данных используя наши доступы:
    10.         $link = mysqli_connect($host, $user, $password, $db_name);
    11.         mysqli_query($link, "SET NAMES 'utf8'");
    12.        
    13.     $query = 'SELECT*FROM news ORDER BY id DESC';
    14.     $result = mysqli_query($link, $query); //ответ базы запишем в переменную $result
    15.     $news1 = mysqli_fetch_array($result);
    16. do{
    17.     echo "<table align=center width=70% border=0 cellpadding=3 cellspacing=1 bgcolor=#FDFEFF>";
    18.     echo "<tr><td bgcolor=#FFFFFF>".$news1['title']."<br>   Интро текст<br> ".$news1['intro_text']."<br>   Полный текст<br> ".$news1['full_text']."</td></tr>";
    19.     echo "<tr><td bgcolor=#F4F4F4> </td></tr></table><br>";
    20.  
    21. }
    22. while($news1 = mysqli_fetch_array($result));
    23. ?>
    Строго не судите я только учусь... :)
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    страница не создаётся
    если у тебя новость доступна по адресу /news/123, то все запросы, начинающиеся с /news/ должны падать на скрипт, который возьмет 123 и сходит в бд, проверит, есть ли там такая новость, и если есть - отрисует её.
     
  3. ArtemPetesburg

    ArtemPetesburg Новичок

    С нами с:
    11 май 2018
    Сообщения:
    48
    Симпатии:
    2
    Адрес:
    Санкт-Петербург
    Вот саму теорию я понимаю, но а как это реализовать в коде почему то нет
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.857
    Симпатии:
    656
    @ArtemPetesburg, как выше написали, нужно повесить на адреса /news/* отдельный обработчик. Если изначально у списка и конкретных новостей общий обработчик, нужно делать разветвление самому. Вот почитайте мою статью Как сделать вывод списка статей? и обязательно комменты к ней, потому что используемый в статье каркас простые выборки из БД по id делает автоматом, поэтому полноценного разветвления у меня показать не получилось за ненадобностью.
    --- Добавлено ---
    P.S. И заканчивайте уже использовать цикл do. Результаты запросов и т.п. нужно проверять. Все это есть в статье или можно найти по ссылкам из нее.
     
  5. ArtemPetesburg

    ArtemPetesburg Новичок

    С нами с:
    11 май 2018
    Сообщения:
    48
    Симпатии:
    2
    Адрес:
    Санкт-Петербург
    Хорошо спасибо, а цикл do Я уже переделал просто witle :)
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    186
    Сначала потренируйся на простых get параметрах, например, site.ru/?news=2, 2 означает id статьи в базе, и при переходе делай запрос в базу по get параметру.
     
    ArtemPetesburg нравится это.
  7. ArtemPetesburg

    ArtemPetesburg Новичок

    С нами с:
    11 май 2018
    Сообщения:
    48
    Симпатии:
    2
    Адрес:
    Санкт-Петербург
    Спасибо, вроде бы разобрались
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    теперь все запросы можно направить на один файл, где выковыривать параметры парсингом урла через parse_url()
    --- Добавлено ---
    или заюзать готовый роутер или фреймворк
     
  9. ArtemPetesburg

    ArtemPetesburg Новичок

    С нами с:
    11 май 2018
    Сообщения:
    48
    Симпатии:
    2
    Адрес:
    Санкт-Петербург
    Все разобрался, спасибо:) о всем