За последние 24 часа нас посетили 16789 программистов и 1621 робот. Сейчас ищут 1807 программистов ...

как вывести данные по категориям и чтоб в ссылке вместо ид было имя категории

Тема в разделе "Прочие вопросы по PHP", создана пользователем gor, 18 май 2018.

?

как вывести данные по категориям и чтоб в ссылке вместо ид было имя категории

  1. помогите

    0 голосов
    0,0%
  2. пожалуста

    1 голосов
    100,0%
  1. gor

    gor Новичок

    С нами с:
    18 май 2018
    Сообщения:
    1
    Симпатии:
    0
    serisl.php
    PHP:
    1. <?php
    2.     require_once "admin/config.php";
    3.     include "header.php"; // подключаемся с бд
    4.     // получаем id категории, для которой нужно вывести новости
    5.     // id передается в урле
    6.     // если в урле ни чего не передалось, то выведем новости всех категорий
    7.     // Не забадте проверять, то что передаета в запрос.
    8.     // Я делаю без проверок, чтобы не усложнять код
    9.     if(isset($_GET['id'])){
    10.         $sqlQuery = "
    11.            SELECT * FROM `serials`
    12.                WHERE `category_name` = ".$_GET['id'].";
    13.        ";
    14.     }else{
    15.         $sqlQuery = "
    16.            SELECT * FROM `serials` ORDER BY id DESC;
    17.        ";
    18.     }
    19.     // делаем запрос к бд и получаем новости
    20.     $sql = mysql_query($sqlQuery) or die(mysql_error());
    21.     $rows = array();
    22.     while($r = mysql_fetch_array($sql, MYSQL_ASSOC)){
    23.         $rows[] = $r;
    24.     }
    25.  
    26.     /*
    27.     * вывод списка новостей
    28.     * в списке сразу создаем ссылку на страницу,
    29.     * где будет отображаться полная новость
    30.     */
    31.     foreach($rows as $row){
    32. ?>
    33.  
    34.  
    35. <div id="news_center_div">
    36.     <h1 class="title_news"><?php echo $row['eng_title']; ?></h1>
    37.     <p class='text_news'>  <img src='uploads/<?php echo $row['image']; ?>' class="news_photo" />   <?php echo $row['eng_text']; ?>     </p>
    38.  
    39.     <a href="singleserial.php?id=<?php echo $row['id']; ?>" class="btnbtn-default">Read more</a>
    40.  
    41. </div>
    42.  
    43. <?php }?>
    44.  
    45. <?php
    46.     include "footer.php";
    47. ?>
    48.    


    singleserial.php
    PHP:
    1. <?php
    2.     require_once "admin/config.php";
    3. include "header.php";    // подключаемся с бд
    4.     // получаем id новости которую будем показывать
    5.     // id передается в урле
    6.     // если в урле ни чего не передалось,
    7.     // то напишем что новость не нашлась
    8.     if(isset($_GET['id'])){
    9.         $sqlQuery = "
    10.            SELECT * FROM `serials`
    11.                WHERE `id` = ".$_GET['id'].";
    12.        ";
    13.         // делаем запрос к бд и получаем новости
    14.         $sql = mysql_query($sqlQuery) or die(mysql_error());
    15.         $rows = array();
    16.         while($r = mysql_fetch_array($sql, MYSQL_ASSOC)){
    17.             $rows[] = $r;
    18.         }
    19.         foreach($rows as $row){
    20. ?>
    21.     <div id="news_center_div">
    22.     <h1 class="title_news"><?php echo $row['eng_title']; ?></h1>
    23.     <p class='text_news'>  <img src='uploads/<?php echo $row['image']; ?>' class="news_photo" />   <?php echo $row['eng_text']; ?>     </p>
    24.  
    25.  
    26.  
    27. </div>
    28.      
    29. <?php
    30.         }
    31.     }else{
    32.         echo "News not found";
    33.     }
    34. ?>
    35. <?php
    36.     include "footer.php";
    37. ?>


    adminserial.php
    <?php
    require_once "config.php";
    include "header.php";
    if(isset($_POST['serial_text'])){
    $arm_title = $_POST['arm_title'];
    $arm_text = $_POST['arm_text'];
    $rus_title = $_POST['rus_title'];
    $rus_text = $_POST['rus_text'];
    $eng_title = $_POST['eng_title'];
    $eng_text = $_POST['eng_text'];
    $img_name="";
    $category_name = $_POST['category_name'];
    if(!empty($_FILES['file']['name'])){
    $array=['png','jpg','jpeg','gif'];
    $explode=explode(".",$_FILES['file']['name']);
    $extension=end($explode);
    if($_FILES['file']['size']<2000000000 && in_array($extension,$array)){
    move_uploaded_file($_FILES['file']['tmp_name'],'../uploads/'.$_FILES['file']['name']);
    $img_name=$_FILES['file']['name'];
    mysql_query("insert into serials (arm_title,arm_text,rus_title,rus_text,eng_title,eng_text,image,category_name)values('$arm_title','$arm_text','$rus_title','$rus_text','$eng_title','$eng_text','$img_name','$category_name')");
    echo "Your serial are Inserted";



    }else{
    echo "Invalid File";
    }
    }else{
    mysql_query("insert into serials (arm_title,arm_text,rus_title,rus_text,eng_title,eng_text,image,category_name)values('$arm_title','$arm_text','$rus_title','$rus_text','$eng_title','$eng_text','$img_name','$category_name')");
    echo "Your serial are Inserted";
    }
    }
    $result = mysql_query("select * from serials");
    $row = mysql_fetch_array($result);


    ?>



    <div id="admin_news_right">
    <img src="../uploads/<?php echo $row['image']; ?> " /><br>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" /><br>
    <input type="text" name="eng_title" value="<?php echo $row['eng_title'];?>"/>
    <textarea type="text" name="eng_text" >
    <?php echo $row['eng_text'];?>
    </textarea>
    <br><br><br>
    <input type="text" name="rus_title" value="<?php echo $row['rus_title'] ?>" />
    <textarea type="text" name="rus_text" >
    <?php echo $row['rus_text'];?>
    </textarea>
    <br><br><br>
    <input type="text" name="arm_title" value="<?php echo $row['arm_title'] ?>" />
    <textarea type="text" name="arm_text" >
    <?php echo $row['arm_text'];?>
    </textarea>
    cat:<input type="text" name="category_name" value="<?php echo $row['category_name'] ?>" />
    <input type="submit" name="serial_text" value="edit" />
    </form>
    </div>
     
    #1 gor, 18 май 2018
    Последнее редактирование: 18 май 2018
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @gor, раз уж в коде нашелся единственный </a>, то, вероятно, в той строке надо вместо $row['id'] написать $row['название_поля_с_именем_катерории'], или не вместо, а добавить в формируемый url в атрибуте href ещё один параметр...
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Лучше не имя, а спец. название для адреса – т.н. слаг. И лучше по-английски или транслитом и в нижнем регистре. За одно можно и ЧПУ прикрутить.

    Про SQL-инъекции почитайте.
    --- Добавлено ---
    Куда в запросе подевалась сортировка при вкл. фильтре?
    --- Добавлено ---
    Запросы к БД нужно делать до выполнения шаблонов.