• 02-08-2022, 11:44:31
    #1
    🧙 Kod Sihirbazı 🧙
    Sliderları sıraltıcam 4 tane slider var diyelim 3. sliderı 1 e alınca 1 2 olcak kayıcak ama bir türlü algoritmasını ne kapıt üzerinde nede kafamda çözemedim
  • 02-08-2022, 11:50:05
    #2
    1-Slider tablosunda sira adında bir sütün açın
    2-Forma sira adında number input açın
    3-Slider ı istediğiniz sırada inputtan gönderdiğiniz siraya göre kaydedin
    4-Döngüde Order by sira ASC şeklide çekin
    Bu kadar.
  • 02-08-2022, 14:45:34
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şu şekilde bir mantık kurabilirsiniz. Testini yapmadım. Mantık olarak belki bir fikir verir diye yazıyorum.

    $yenisira=$_POST['yenisira'];
    $slide_id=$_POST['slide_id'];
    
    
    $eskisirasorgu=$db->prepare("SELECT * FROM slider where slide_id = {$slide_id} ");
    $eskisirasorgu->execute();
    $sonuc=$eskisirasorgu->fetch(PDO::FETCH_ASSOC);
    $eskisira=$sonuc['slide_sira'];
    
    
    
    if ($yenisira > $eskisira) {
        $sorgumetin="SELECT * FROM slider where slide_sira > ".$eskisira." and slide_sira <= ".$yenisira;
    } elseif ($yenisira < $eskisira) {
        $sorgumetin="SELECT * FROM slider where slide_sira >= ".$yenisira." and slide_sira < ".$eskisira;
    }
            
    
    $sorgu=$db->prepare($sorgumetin);
    $sorgu->execute();
    while ($cikti=$sorgu->fetch(PDO::FETCH_ASSOC)){
    
    
    if ($yenisira > $eskisira) {
        $sirakaydir= $cikti['slide_sira'] - 1 ;
    } elseif ($yenisira < $eskisira) {
        $sirakaydir= $cikti['slide_sira'] + 1 ;
    }
    
    
    $duzenle=$db->prepare("UPDATE slider SET
                
                slide_sira=:slide_sira
                    
                WHERE slide_id = {$cikti['slide_id']}");
    
            $update=$duzenle->execute(array(
                
                'slide_sira' => $sirakaydir
                
            ));
    
    }
    
        
    $duzenle=$db->prepare("UPDATE slider SET
                
                slide_sira=:slide_sira
                    
                WHERE slide_id={$slide_id}");
    
            $update=$duzenle->execute(array(
                
                'slide_sira' => $yenisira
                
            ));
  • 02-08-2022, 16:17:23
    #4
    Üyeliği durduruldu
    yapamadiysaniz kodlarinizi atin yapip gönderiyim.
  • 02-08-2022, 20:23:12
    #5
    🧙 Kod Sihirbazı 🧙
    velmut adlı üyeden alıntı: mesajı görüntüle
    1-Slider tablosunda sira adında bir sütün açın
    2-Forma sira adında number input açın
    3-Slider ı istediğiniz sırada inputtan gönderdiğiniz siraya göre kaydedin
    4-Döngüde Order by sira ASC şeklide çekin
    Bu kadar.
    şuan zaten bu dediğiniz yapılı hocam
    kcanozbek adlı üyeden alıntı: mesajı görüntüle
    Şu şekilde bir mantık kurabilirsiniz. Testini yapmadım. Mantık olarak belki bir fikir verir diye yazıyorum.

    $yenisira=$_POST['yenisira'];
    $slide_id=$_POST['slide_id'];
    
    
    $eskisirasorgu=$db->prepare("SELECT * FROM slider where slide_id = {$slide_id} ");
    $eskisirasorgu->execute();
    $sonuc=$eskisirasorgu->fetch(PDO::FETCH_ASSOC);
    $eskisira=$sonuc['slide_sira'];
    
    
    
    if ($yenisira > $eskisira) {
        $sorgumetin="SELECT * FROM slider where slide_sira > ".$eskisira." and slide_sira <= ".$yenisira;
    } elseif ($yenisira < $eskisira) {
        $sorgumetin="SELECT * FROM slider where slide_sira >= ".$yenisira." and slide_sira < ".$eskisira;
    }
            
    
    $sorgu=$db->prepare($sorgumetin);
    $sorgu->execute();
    while ($cikti=$sorgu->fetch(PDO::FETCH_ASSOC)){
    
    
    if ($yenisira > $eskisira) {
        $sirakaydir= $cikti['slide_sira'] - 1 ;
    } elseif ($yenisira < $eskisira) {
        $sirakaydir= $cikti['slide_sira'] + 1 ;
    }
    
    
    $duzenle=$db->prepare("UPDATE slider SET
                
                slide_sira=:slide_sira
                    
                WHERE slide_id = {$cikti['slide_id']}");
    
            $update=$duzenle->execute(array(
                
                'slide_sira' => $sirakaydir
                
            ));
    
    }
    
        
    $duzenle=$db->prepare("UPDATE slider SET
                
                slide_sira=:slide_sira
                    
                WHERE slide_id={$slide_id}");
    
            $update=$duzenle->execute(array(
                
                'slide_sira' => $yenisira
                
            ));
    sliderların eski ile yenisinin idsinin yerlerinimi değiştirdiniz burda denemedim ama öyle gözüküyor
  • 03-08-2022, 09:43:31
    #6
    Larousse adlı üyeden alıntı: mesajı görüntüle
    şuan zaten bu dediğiniz yapılı hocam

    sliderların eski ile yenisinin idsinin yerlerinimi değiştirdiniz burda denemedim ama öyle gözüküyor
    Örnekle açıklayım. 5 tane slide olduğunu düşünelim. A B C D E olarak isimlendirelim. C'yi başa alacak olursak yeni sıralama şu şekilde olur. C A B D E .
    yazdığım kodlar bu şekilde çalışıyor olması lazım. yine bi deneyin yapamazsanız yardımcı olurum.