За последние 24 часа нас посетили 21899 программистов и 1010 роботов. Сейчас ищут 699 программистов ...

Страница Статьи

Тема в разделе "PHP и базы данных", создана пользователем Amirjopn, 22 июн 2018.

Метки:
  1. Amirjopn

    Amirjopn Новичок

    С нами с:
    19 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    Почему не работает этот код для вывода на страницу отдельной статьи.

    <?php //singlepost.php
    $conn = mysqli_connect("localhost", "root", "", "blog") or die(mysqli_connect_error());
    $query = "SELECT * FROM articles WHERE article_id = 'row['id'] ;
    $res = mysqli_query($conn, $query) or die(mysqli_error());
    ?>

    <?php
    while($row = mysqli_fetch_assoc($res)) {


    ?>
    <section class = "container">
    <div class="mainarticle">
    <h1><?php
    echo $row['article_title'];
    ?>
    </h1>
    <?php
    $img = $row['img_url'];
    ?>
    <img src="<?php echo $img ?>" alt="Картинка">
    <p>
    <?php
    $text = substr($row['article_text'], 0, 1000);
    echo $text; ?> </p>
    </div>
    <?php
    }
    ?>
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    мне кажется или здесь в конце что то странное с ' и "?
     
  3. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Во первых их у тебя не хватает.
    На каждую открывающуюся должна быть закрывающаяся.
    Во вторых у тебя намечается что то вроди
    'row['id']' = 'row[' + id + ']'
     
  4. Amirjopn

    Amirjopn Новичок

    С нами с:
    19 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    Посмотрите вот этот код пожалуйста

    <?php
    $conn = mysqli_connect("localhost", "root", "", "blog") or die(mysqli_connect_error());
    $id = $_GET['article_id'];
    $query = "SELECT * FROM articles WHERE article_id = '$id'";
    $res = mysqli_query($conn, $query) or die(mysqli_error());
    ?>

    <?php
    while($row = mysqli_fetch_assoc($res)) {


    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>


    <section class = "container">
    <div class="mainarticle">
    <h1><?php
    echo $row['article_title'];
    ?>
    </h1>
    <?php
    $img = $row['img_url'];
    ?>
    <img src="<?php echo $img ?>" alt="Картинка">
    <p>
    <?php
    $text = $row['article_text'];
    echo $text; ?> </p>
    </div>
    </section>
    </body>
    </html>
    <?php
    }
    ?>
    --- Добавлено ---
    вот код Index.php
    <?php
    $conn = mysqli_connect("localhost", "root", "", "blog") or die(mysqli_connect_error());
    $query = "SELECT * FROM articles ORDER BY article_id DESC LIMIT 1";
    $res = mysqli_query($conn, $query) or die(mysqli_error());

    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Таджикский блог</title>
    <link rel="stylesheet" href="style.css">
    </head>
    <body>
    <header class = "container">
    <div class="logo">
    <h1> TajBlog</h1>
    </div>
    <div class="menu">
    <a href="#">Меню</a>
    <a href="№">Новости</a>
    </div>
    <div class="login">
    <a href="auth.php">Войти</a>
    </div>
    </header>
    <?php
    while($row = mysqli_fetch_assoc($res)) {

    ?>
    <section class = "container">
    <div class="mainarticle">
    <h1><?php
    echo $row['article_title'];
    ?>
    </h1>
    <?php
    $img = $row['img_url'];
    ?>
    <img src="<?php echo $img ?>" alt="Картинка">
    <p>
    <?php
    $text = substr($row['article_text'], 0, 1000);
    echo $text; ?> ... </p> <?php
    if(strlen($row['article_text']) >= 1000){
    ?>

    <div>
    <a href="singlepost.php">Далее</a>
    </div>
    <?php
    }

    ?>
    </div>
    <?php
    }
    ?>

    <h1>Топ статьи</h1>
    <div class="sidebar">
    <div class="toparticles">
    <img src="img/imgarticle.jpg" alt="">
    <div class="articletext">
    <h1>Загаловок</h1>
    <p>Lorem ipsum dolor sits ametasd, conset asdfsdf
    dolor sits ametasd, conset asdfsdf sadf sadf </p>
    </div>
    </div>

    <div class="toparticles">
    <img src="img/imgarticle.jpg" alt="">
    <div class="articletext">
    <h1>Загаловок</h1>
    <p>Lorem ipsum dolor sits ametasd, conset asdfsdf
    dolor sits ametasd, conset asdfsdf sadf sadf </p>
    </div>
    </div>

    <div class="toparticles">
    <img src="img/imgarticle.jpg" alt="">
    <div class="articletext">
    <h1>Загаловок</h1>
    <p>Lorem ipsum dolor sits ametasd, conset asdfsdf
    dolor sits ametasd, conset asdfsdf sadf sadf </p>
    </div>
    </div>

    </div>
    </section>

    </body>
    </html>
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Посмотрел и чЁ? На осн. ошибку вам указали на киберфоруме.

    Походу у вас while – универ. решение на все случаи жизни. Про while в списке, когда списка по сути нет, уже написали. А во это что за хрень:
    PHP:
    1. <?php
    2. while($row = mysqli_fetch_assoc($res)) {
    3.  
    4.  
    5. ?>
    6. <!DOCTYPE html>
    Нужно как-то так, если использовать ваш любимый or die:
    PHP:
    1. $row = mysqli_fetch_assoc($res) or die();
    Или так, если все-таки использовать алг. конструкции, а за одно и норм. статус выдавать:
    PHP:
    1. if (!($row = mysqli_fetch_assoc($res))) {
    2.     error(404);
    3.     //exit;
    4. }
    Писать else для страницы ошибки после основного шаблона как-то совсем напряжно. Хотя если запихнете основной шаблон в отдельный файл, то будет выглядеть немного повменяемее:
    PHP:
    1. if ($row = mysqli_fetch_assoc($res)) include(PATH.'template/singlepost.php');
    2. else error(404);