• 06-09-2010, 02:21:42
    #1
    phpden sonra mysql işine girdim ancak basit bir yerde takıldım. şimdi 3 tane değişken var .1.si 1 den başlayarak her yenilemede 1 artacak sonsuza kadar, 2. si 1 den başlayıp 5 e kadar gelince tekrar 1 olacak 3. ise 1 den başlayacak ve 2. değişken her 5 olmasında 1 artacak.

    zor mu? beni aştı da.
  • 06-09-2010, 02:43:54
    #2
    1.si intval olarak bir sütun açıp auto increment olarak atayabilirsin
    2.si autoincrement yine fakat pek bir bilgim yok
    ama hepsi int değerince ve auto increment içeriyor,
    tavsiyem navicat adlı programla çalışman mysql i
  • 06-09-2010, 02:56:51
    #3
    MySQL tarafını bilmem ama PHP tarafında nasıl yapılır biliyorum. Ama performansı eksi yönde baya bi etkiler sanırım. MySQL tarafında yapmak için hiç çözüm bulunamazsa yardımcı olurum.
  • 06-09-2010, 03:53:05
    #4
    Hkan adlı üyeden alıntı: mesajı görüntüle
    MySQL tarafını bilmem ama PHP tarafında nasıl yapılır biliyorum. Ama performansı eksi yönde baya bi etkiler sanırım. MySQL tarafında yapmak için hiç çözüm bulunamazsa yardımcı olurum.
    performans çok da önemli değil.

    istediğim çok zor bişey olmasa gerek. öncelikle değişkenler a, b, c olsun. php sayfalarında olması gereken


    a, 1 başlayıp 1er 1er artacak den artacak (1.php de 1, 2.phpde 2 şeklinde)
    b 1den başlayıp 5 e sayacak 5ten sonra tekrar 1 olacak sanırım for ile çok basit olur bunu yapmak,
    c ise b ye bağlı olarak b nin her 5 olmasında 1 artacak.bunları da mysql yazacak bir kod lazım:
  • 06-09-2010, 05:25:21
    #5
    $q = mysql_query("SELECT `a`, `b` FROM `tablo` ORDER BY `a` DESC LIMIT 0,1") or die(mysql_error());
    
    $row = mysql_fetch_assoc($q);
    
    foreach($row as $k => v)
    {
      $$k = $v;
    }
    
    $a = !empty($a) ? $a : 1; // Boşsa 1 olsun
    $b = !empty($b) ? $b : 1; // Boşsa 1 olsun
    $c = !empty($c) ? $c : 1; // Boşsa 1 olsun
    
    $yeni_a = $a + 1; // a'nın yeni değeri a + 1
    $yeni_b = ($b < 5) ? $b + 1 : 1; // b'nin yeni değeri 5'ten küçükse b + 1, değilse 1
    $yeni_c = ($b == 5) ? $c + 1 : $c; // c'nin yeni değeri b 5'ten küçükse c + 1, değilse kendisi
    
    $q = mysql_query("INSERT INTo `tablo` (`a`, `b`, `c`) VALUES ('$yeni_a', '$yeni_b', '$yeni_c')") or die(mysql_error());
  • 06-09-2010, 14:15:01
    #6
    Hkan adlı üyeden alıntı: mesajı görüntüle
    $q = mysql_query("SELECT `a`, `b` FROM `tablo` ORDER BY `a` DESC LIMIT 0,1") or die(mysql_error());
    
    $row = mysql_fetch_assoc($q);
    
    foreach($row as $k => v)
    {
      $$k = $v;
    }
    
    $a = !empty($a) ? $a : 1; // Boşsa 1 olsun
    $b = !empty($b) ? $b : 1; // Boşsa 1 olsun
    $c = !empty($c) ? $c : 1; // Boşsa 1 olsun
    
    $yeni_a = $a + 1; // a'nın yeni değeri a + 1
    $yeni_b = ($b < 5) ? $b + 1 : 1; // b'nin yeni değeri 5'ten küçükse b + 1, değilse 1
    $yeni_c = ($b == 5) ? $c + 1 : $c; // c'nin yeni değeri b 5'ten küçükse c + 1, değilse kendisi
    
    $q = mysql_query("INSERT INTo `tablo` (`a`, `b`, `c`) VALUES ('$yeni_a', '$yeni_b', '$yeni_c')") or die(mysql_error());
    ilgin için teşekkür ediyorum. hemen deniyorum. +rep


    //edit: çalıştı. gerçekten çok teşekkür ediyorum büyük bir dertten kurtuldum..

    ancak kodda bir hata var. c değeri 1 den 2 oluyor da 2 den hemen sonra geri 1 oluyor. onu da b her 5 olduğunda 1 artması lazım
  • 07-09-2010, 23:29:57
    #7
    sorun günceldir arkadaşlar.
    $q = mysql_query("SELECT `a`, `b` FROM `tablo` ORDER BY `a` DESC LIMIT 0,1") or die(mysql_error());
    
    $row = mysql_fetch_assoc($q);
    
    foreach($row as $k => v)
    {
      $$k = $v;
    }
    
    $a = !empty($a) ? $a : 1; // Boşsa 1 olsun
    $b = !empty($b) ? $b : 1; // Boşsa 1 olsun
    $c = !empty($c) ? $c : 1; // Boşsa 1 olsun
    
    $yeni_a = $a + 1; // a'nın yeni değeri a + 1
    $yeni_b = ($b < 5) ? $b + 1 : 1; // b'nin yeni değeri 5'ten küçükse b + 1, değilse 1
    $yeni_c = ($b == 5) ? $c + 1 : $c; // c'nin yeni değeri b 5'ten küçükse c + 1, değilse kendisi
    
    $q = mysql_query("INSERT INTo `tablo` (`a`, `b`, `c`) VALUES ('$yeni_a', '$yeni_b', '$yeni_c')") or die(mysql_error());
    kodundaki c değeri b nin her artmasında rtmıyor 1den 2 oluyor sonra tekrar 1 oluyor. bunun 1-2-3... şeklinde artması gerekiyor
  • 09-09-2010, 04:59:29
    #8
    Kusura bakmayın 2 gündür doğru düzgün giremedim internete, birkaç problemim vardı.

    $yeni_c = ($b == 5) ? $c + 1 : $c;

    bu satırı şu şekilde değiştirip deneyin:

    $yeni_c = ($b < 5) ? $c : ($c + 1);
  • 10-09-2010, 22:45:55
    #9
    Hkan adlı üyeden alıntı: mesajı görüntüle
    Kusura bakmayın 2 gündür doğru düzgün giremedim internete, birkaç problemim vardı.

    $yeni_c = ($b == 5) ? $c + 1 : $c;

    bu satırı şu şekilde değiştirip deneyin:

    $yeni_c = ($b < 5) ? $c : ($c + 1);

    yok hocam ya maalesef yine olmadı. çok ilginç.