• 01-11-2008, 17:11:46
    #1
    merhaba arkadaşlar bir makale sitemde makale eklerken sıra numarası yazıyorum örneğin
    makale adı : ali veliyi kovaladı sıra 1
    bu makale en üstte dursun ama makale eklerken sıra numarası vermedigim makale bir alta insin.
    ve
    makale adı : ali veliyi kovaladı sıra 1
    makale adı : ali veliyi kovaladı 2 sıra 2
    makale adı : ali veliyi kovaladı 3 sıra 3
    makale adı : ali veliyi kovaladı 4 sıra 4
    makale adı : ali veliyi kovaladı 5 sıra 5

    bu 5 makale sırasıyla alt alta 1 - 2 -3 -4 - 5 diye geliyor ama sıra numarası yazmadıgım makale atıyorum
    ışık ılık süt içti buna sıra numarası yazmassam bu

    makale adı : ali veliyi kovaladı sıra 1
    makale adı : ışık ılık süt içti
    makale adı : ali veliyi kovaladı 2 sıra 2
    makale adı : ali veliyi kovaladı 3 sıra 3
    makale adı : ali veliyi kovaladı 4 sıra 4
    makale adı : ali veliyi kovaladı 5 sıra 5
    gördügünüz gibi 2.sıraya gelmesi lazım nasıl yapabiliriz ?

    tablo yapım

    makaleler ->
    id -> baslik -> sira
  • 02-11-2008, 17:59:58
    #2
    Bütün makale adları aynı mı? Nasıl adın sonuna eklediğin sıra numarasıyla çekiyorsun anlamadım.

    İki sql sorgusu ile halledebilirsin sanırım. İlk sorguda makalelerden sadece sıra numarası olanları al, ikincisinde de sıra numarası olmayanları id desc şeklinde al. İlk sorguyu çalıştırırken eğer sıra 1 ise ikinci sorgunun döngüsünü çalıştır komutunu ver ve ikinci döngü bittikten sonra da ilk sorgunun döngüsü devam eder.

    Bir ve iki kelimelerini çok kullandım kusura bakma
  • 02-11-2008, 18:44:30
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    $makale_sql    = "SELECT id,baslik FROM makaleler WHERE sira != '' ORDER BY sira ASC";
    $makale_sonuc  = mysql_query($makale_sql) or die ("Makale bilgileri alınamıyor");
    $makale_sayi   = mysql_num_rows($makale_sonuc);
    if ($makale_sayi > 0)
    {
     $sirano = 0;
     while ($makale_bilgi  = mysql_fetch_array($makale_sonuc))
     {
     if ($sirano==2) {
     $makale1_sql    = "SELECT id,baslik FROM makaleler WHERE sira = '' ORDER BY id ASC";
     $makale1_sonuc  = mysql_query($makale1_sql) or die ("Makale bilgileri alınamıyor");
     $makale1_sayi   = mysql_num_rows($makale1_sonuc); 
     if ($makale1_sayi > 0)
    {
      while ($makale1_bilgi  = mysql_fetch_array($makale1_sonuc))
     {
      $id1          = $makale1_bilgi["id"];
      $baslik1      = $makale1_bilgi["baslik"];
      echo '<a href="makale.php?id='.$id1.'">»&nbsp;'.$baslik1.'</a><br>';
     }
     }
     }
      $id          = $makale_bilgi["id"];
      $baslik      = $makale_bilgi["baslik"];
      echo '<a href="makale.php?id='.$id.'">»&nbsp;'.$baslik.'</a><br>';
      $sirano++;
     }
     unset($id,$baslik);
     } else {
     echo 'Hiç makale eklenmemiş';
     }
     unset($makale_sayi,$makale_sql,$makale1_sayi,$makale1_sql);
     mysql_free_result($makale_sonuc,$makale1_sonuc);
    ?>
  • 02-11-2008, 19:33:43
    #4
    Benim anlatmaya çalıştığım buydu
  • 02-11-2008, 19:36:29
    #5
    Biraz karışık duruyor ama hızlı hızlı yazıp fonksiyon kullanmadım diye öyle aslında çok basit bir mantık ve kodlama...
  • 03-11-2008, 14:16:37
    #6
    tamam arkadaşlar deneyeceğim teşekkürler
  • 03-11-2008, 14:33:46
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    SELECT * FROM tablo ORDER BY id DESC, sira DESC

    gibi bir sql cümlesi de iş görür sanırım.
  • 04-11-2008, 10:34:47
    #8
    ama aynı olan sıra numaralı makaleleri en son eklenen üste gelecek sonraki bir alta örneğin
    ali veliye baktı -> 1
    ali veliye baktı -> 2
    ali veliye baktı -> 3

    bu şekilde sira DESC dediğinde olur ama ya
    ali veliye baktı -> 1
    ali veliye baktı -> 2
    ali veliye baktı en son haber-> 1

    böyleyse ali veliye baktı en son haber bu en başa gelmesi lazım
  • 04-11-2008, 10:37:56
    #9
    SELECT * FROM tablo ORDER BY id DESC, baslik ASC, sira ASC

    ?