• 16-09-2010, 17:31:29
    #1
    Arkadaşlar tekrar merhaba. Konuya tam hakim olamadığımdan başlığıda böyle yazmak zorunda kaldım...

    Şimdi sorunum şöyle; Admin panelli bir web sitem var... Sayfa eklendikçe normal olarak ID 1den itibaren başlıyor. ben eklediğim sayfayı panel'den siliyorum bakınca DB'den de silinmiş gözüküyor ama bir sonraki eklediğim Sayfa ID'si 2 olarak atanıyor. Ben tekrar 1'den başlamasını istiyorum. SQL dosyamdan bunu nasıl düzeltebilirim. Gerekli alanlar aşağıda. Yardımcı olursanız çok sevinirim...

    --
    -- Tablo için tablo yapısı: `sayfa`
    --
    
    CREATE TABLE IF NOT EXISTS `sayfa` (
      `id` int(11) NOT NULL auto_increment,
      `baslik` varchar(225) NOT NULL,
      `kayanyazi` varchar(225) NOT NULL,
      `icerik` text NOT NULL,
      `aciklama` varchar(225) NOT NULL,
      `anahtar` varchar(225) NOT NULL,
      `solmenu` int(11) NOT NULL,
      `ustmenu` int(11) NOT NULL,
      `anasayfagoster` int(11) NOT NULL,
      `seo` varchar(225) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    
    --
    -- Tablo döküm verisi `sayfa`
    --
    
    INSERT INTO `sayfa` (`id`, `baslik`, `kayanyazi`, `icerik`, `aciklama`, `anahtar`, `solmenu`, `ustmenu`, `anasayfagoster`, `seo`) VALUES
  • 16-09-2010, 17:34:21
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    panelde DELETE yaparken tablonun AUTO_INCREMENT değerini 1 azaltırsın
  • 16-09-2010, 17:35:54
    #3
    Tam olarak nasıl yapmam gerekecek? Daha doğrusu ben zaman zaman manuel olarak o işlemi yapıyorum ancak otomatik olarak yapmanın bir yolu varmıdır?
  • 16-09-2010, 23:16:17
    #4
    neden böyle birşey istediğini söylesen daha iyi bence
  • 16-09-2010, 23:23:46
    #5
    arno adlı üyeden alıntı: mesajı görüntüle
    panelde DELETE yaparken tablonun AUTO_INCREMENT değerini 1 azaltırsın
    Peki en sondakini değil de aradan bir kayıt siliyorsa?
  • 17-09-2010, 05:05:46
    #6
    yemekim adlı üyeden alıntı: mesajı görüntüle
    Peki en sondakini değil de aradan bir kayıt siliyorsa?
    Haklısın. Verilen örnek üzerinden düşününce, ilk aklıma geleni yazdım.
  • 18-09-2010, 00:10:38
    #7
    ALTER TABLE tabloismi AUTO_INCREMENT=1
  • 19-09-2010, 02:05:46
    #8
    erdemmin adlı üyeden alıntı: mesajı görüntüle
    neden böyle birşey istediğini söylesen daha iyi bence
    Sıralama konusunda biraz hassas davranıyorum. Yani Arada kaçan bir ID benim için hoş olmuyor. Dolayısı ile örneğin silinen id=44'ün yerine yeni eklenen bir sayfa'nın yine id=44 olması benim için daha iyi olacağını düşündüğümden...
  • 19-09-2010, 11:15:21
    #9
    Silinen sayfanın numarasından büyük olanları 1 eksiltebilirsin. Alttaki sorguda 15 numaralı sayfayı silince 15'ten sonraki sayfaların ID'sini 1 eksiltiyor. Ancak auto_increment değerinin nasıl değiştirildiğini bilmediğimden o konuda bir şey yazamıyorum.

    $id = 15;
    mysql_query("DELETE FROM `sayfa` WHERE `id` = '$id'");
    mysql_query("UPDATE `sayfa` SET `id` = `id` - 1 WHERE `id` > '$id'");