Profil detayı eklendi, herkes profillerine girip bir gözatsın! Sevdiğiniz üyelerin cevaplarını takip edin! Tüm güncellemeler

Sınırsız Kategoride Sıralama Mantığı

Merhaba arkadaşlar,



Sınırsız kategori sisteminde sıralama sistemim bu şekilde.

Her eklediğim kategori yeni bir alt kategori ise veritabanında yeni bir alan ekliyorum şu şekilde.


Tümünü Kategorileri Listele (sira_no)

-kategori(sira_no_0)

-kategori(sira_no_1)

-kategori(sira_no_2)


Bunu yapmakta baya kasıyo sistemi.

Siz olsanız nasıl bir sıralama mantığı oluştururdunuz.




4

Cevaplar (4)

İşlem devam ediyor, lütfen bekleyin..
Berk Altıok
@berk
5 ay önce

Sınırsız kategori sistemine farklı metotlarla farklı alternatifler yapabilirsin lakin bana göre en kullanışlı ve pratik olanı her seferinde bir satır oluşturmasıdır.

https://www.youtube.com/watch?v=78rVy-X2JoA

Milyonluk bir sınırsız kategori işlemi yapmayacaksan sorun olacağını zannetmiyorum.

İşlem devam ediyor, lütfen bekleyin..
kerem
@kaskan
5 ay önce

Burada sadece kategori oluşturma mantığı var. Ben zaten bunu yapabiliyorum, benim sorduğum bu kategorileri nasıl sıralamam gerektiği idi.

İşlem devam ediyor, lütfen bekleyin..
Berk Altıok
@berk
5 ay önce

Mysql de sira adı altında bir kısım açarak yapabilirsin. Bundan alternatifi var mı bilmiyorum. 1-2-3-4 şeklinde değerler vererek sıralama yapabilirsin. Aynı şekilde alt kategorileri de kendi içinde 1-2-3-4 şeklinde değer vererek sıralama yapabilirsin.

İşlem devam ediyor, lütfen bekleyin..
Baxruz ismailov

Abi sen sorunu sormushsun ama mysqlde index nomrelerini yazmamishinki sana srialamsin gosteriyim ben sana boyle yardim edeyim kendi yazdiqim Alt kategori mantingini yaziyim bura lazimin olur seinkiyle ayni oalcaq muhtemalan.Orda goruntulemesinide yazmishim


MySql

-- phpMyAdmin SQL Dump
-- version 4.6.6
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Oct 28, 2018 at 09:24 AM
-- Server version: 5.7.17-log
-- PHP Version: 7.1.1

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `fubi`
--

-- --------------------------------------------------------

--
-- Table structure for table `categories`
--

CREATE TABLE `categories` (
  `categories_id` int(11) NOT NULL,
  `categories_parent_id` int(11) NOT NULL,
  `categories_name` varchar(255) NOT NULL,
  `categories_url` varchar(255) NOT NULL,
  `categories_content` text NOT NULL,
  `categories_seo` varchar(1000) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `categories`
--

INSERT INTO `categories` (`categories_id`, `categories_parent_id`, `categories_name`, `categories_url`, `categories_content`, `categories_seo`) VALUES
(73, 0, 'adamlar', 'adamlar', '', ''),
(74, 0, 'baxruz', 'baxruz', '', ''),
(75, 0, 'faridik', 'faridik', '', ''),
(83, 0, 'meishet eshyalari', 'meishet-eshyalari', '<p>s</p>', '{\"title\":\"s\",\"keyword\":\"s\",\"description\":\"s\"}'),
(86, 0, 'electroinca', 'electroinca', '', ''),
(92, 86, 'notebook', 'notebook', '', ''),
(93, 75, 'test', '', '', ''),
(94, 93, 'fffff', '', '', '');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `categories`
--
ALTER TABLE `categories`
  ADD PRIMARY KEY (`categories_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `categories`
--
ALTER TABLE `categories`
  MODIFY `categories_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=95;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



Database baglantisi yap

db.php

<?php


try{

    $db = new PDO("mysql:host=localhost;dbname=fubi;charset=utf8;","root","12345678");
    //echo "Bazayla elaqe var";

}catch(PDOException $mesaj){

    echo $mesaj->getMessage()."<br/>";
    echo "Bazayla elaqe kesildi";
}


?>



index.php

Alt kategorileri ekelemek ucun

<?php

require 'db.php';

function categoryTree($parent_id = 0, $sub_mark = ''){
    global $db;
    $category_sor = $db->prepare("SELECT * FROM categories WHERE categories_parent_id =:categories_parent_id ORDER BY categories_id DESC");
    $category_sor ->execute([
            "categories_parent_id" => $parent_id
    ]);
    $kontrol = $category_sor->rowCount();


if($kontrol > 0){
   
        while($category_cek = $category_sor->fetch(PDO::FETCH_ASSOC)){
            echo '<option  value="'.$category_cek['categories_id'].'">'.$sub_mark.$category_cek['categories_name'].'</option>';
            categoryTree($category_cek['categories_id'], $sub_mark.'---');
        }
}
}

?>


<form action="islem.php" method="POST">
    <input type="text" name="category_add">
    <select name="category">
        <option value="0" selected>Kateqoriya secin</option>
        <?php categoryTree(); ?>
    </select>
    <button type="submit" >ELAVE ET</button>
</form>










islem.php

Emeliyyatlar yerine yetirilir

<?php

require_once "db.php";


if(isset($_POST['category_add'])){
    $parent_id = $_POST['category'];
    $category_name = $_POST['category_add'];

$category_add = $db->prepare("INSERT INTO categories SET categories_name=:categories_name,categories_parent_id=:categories_parent_id");
$category_add->execute([
    "categories_name" => $category_name,
    "categories_parent_id" => $parent_id
]);

if($category_add){
    echo "Ela";

}else{
    echo "problem oldu";
}


}


?>



view.php

ve sana lazim olan

frontendde siralanmasi Eger isteidyin buysa :)

<?php

require 'db.php';


//say funksiyasi
function say()
{
    static $sayi = 1;
    echo $sayi;
    $sayi++;
}


function categoryTree($parent_id = 0, $sub_mark = '')
{
    global $db;
    $category_sor = $db->prepare("SELECT * FROM categories WHERE categories_parent_id =:categories_parent_id ORDER BY categories_id DESC");
    $category_sor->execute([
        "categories_parent_id" => $parent_id
    ]);
    $kontrol = $category_sor->rowCount();


    if ($kontrol > 0) {

        while ($category_cek = $category_sor->fetch(PDO::FETCH_ASSOC)) {
            ?>
            <tr>
                <td><?php echo say(); ?></td>
                <td>
                    <?php echo $sub_mark . $category_cek['categories_name']; ?>
                </td>
            </tr> <?php categoryTree($category_cek['categories_id'], $sub_mark . '---');
        }

    }
}


?>


<table border="1">
    <thead>
    <tr>
        <th>say</th>
        <th>ad</th>
    </tr>
    </thead>
    <tbody>

    <?php categoryTree(); ?>


    </tbody>
</table>





Kodlari biraz duzensiz yazmishim kusura bakmayin kendimcun :)

Linkini burdan indire bilrisiniz

https://www57.zippyshare.com/v/EXSvPMfE/file.html






İşlem devam ediyor, lütfen bekleyin..

Cevap yaz Sadece sorunun cevabını yazın

Yabancı Dizi Arşivi