• 16-01-2020, 21:36:26
    #1
    Üyeliği durduruldu
    Elimdeki bir yorum botunda kullanıcı hesap seçimi rastgele yapılıyor, yanlışım yoksa ilgili dosyayı buldum, ben kullanıcıları random değil sırayla alsın ve döngü halinde başa sarsın istiyorum. DB deki kullanıcı adları sırayla kullanılsın bitince başa sarsın döngü devam etsin
  • 16-01-2020, 21:39:34
    #2
    odman adlı üyeden alıntı: mesajı görüntüle
    Elimdeki bir yorum botunda kullanıcı hesap seçimi rastgele yapılıyor, yanlışım yoksa ilgili dosyayı buldum, ben kullanıcıları random değil sırayla alsın ve döngü halinde başa sarsın istiyorum. DB deki kullanıcı adları sırayla kullanılsın bitince başa sarsın döngü devam etsin

    <?php
    include 'Insert.php';
    class Database
    {
    private $conn;
    public function __construct()
    {
    try {
    $this->conn = new PDO('mysql:host=localhost;dbname=name;charset=utf8','root','dbsifresi');
    $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
    $this->conn->query("SET NAMES utf8");
    $this->conn->query("SET time_zone = '+03:00'");
    } catch (\PDOException $e ) {
    exit('Error #1015: Database Communication Error.');
    }
    }
    
    public function GetConn()
    {
    return $this->conn;
    }
    
    public function getRandomAccount(){
        $conn = $this->GetConn();
    $query = $conn->prepare("SELECT * FROM accounts ORDER BY RAND() LIMIT 1");
    $query->execute();
    return $query->fetch();
    }
    
    public function getAccounts()
    {
    $conn = $this->GetConn();
    $query = $conn->prepare("SELECT * FROM accounts");
    $query->execute();
    return $query->fetchAll();
    }    
    
    public function createAccount($email,$password)
    {
    $conn = $this->GetConn();
    $Insert = new Insert($conn);
    $Insert->setTable("accounts");
    $Insert->bindParam("email",$email);
    $Insert->bindParam("password",$password);
    $Insert->execute();
    return $Insert->lastInsertId();
    }    
    
    public function createProcess()
    {
    $conn = $this->GetConn();
    $Insert = new Insert($conn);
    $Insert->setTable("process");
    $Insert->execute();
    }
    
    
    public function getAccountCount(){
    $conn = $this->GetConn();
    $query = $conn->query("SELECT COUNT(id) AS toplam FROM accounts");
    $query->execute();
    return $query->fetch()['toplam'];
    }
    
    public function createTag($text)
    {
    $conn = $this->GetConn();
    $Insert = new Insert($conn);
    $Insert->setTable("tags");
    $Insert->bindParam("text",$text);
    $Insert->execute();
    return $Insert->lastInsertId();
    }
    
    public function getTags()
    {
    $conn = $this->GetConn();
    $query = $conn->prepare("SELECT * FROM tags");
    $query->execute();
    return $query->fetchAll();
    }
    
    public function getRandomTag(){
        $conn = $this->GetConn();
    $query = $conn->prepare("SELECT * FROM tags ORDER BY RAND() LIMIT 1");
    $query->execute();
    return $query->fetch();
    }
    
    
    public function getTagCount(){
    $conn = $this->GetConn();
    $query = $conn->query("SELECT COUNT(id) AS toplam FROM tags");
    $query->execute();
    return $query->fetch()['toplam'];
    }
    
    public function getLinks()
    {
    $conn = $this->GetConn();
    $query = $conn->prepare("SELECT * FROM links");
    $query->execute();
    return $query->fetchAll();
    }
    
    public function createLinks($link)
    {
    $conn = $this->GetConn();
    $Insert = new Insert($conn);
    $Insert->setTable("links");
    $Insert->bindParam("link",$link);
    $Insert->execute();
    return $Insert->lastInsertId();
    }
    
    public function getLinkCount(){
    $conn = $this->GetConn();
    $query = $conn->query("SELECT COUNT(id) AS toplam FROM links");
    $query->execute();
    return $query->fetch()['toplam'];
    }
    
    public function getLast24HourProcessCount(){
    $conn = $this->GetConn();
    $query = $conn->prepare("SELECT count(id) as counter FROM process WHERE added_at >= DATE_SUB(NOW(), INTERVAL 1 DAY)");
    $query->execute();
    return $query->fetch()['counter'];
    }
    
    public function removeTag($id){
    $conn = $this->GetConn();
    $query = $conn->prepare("DELETE FROM tags WHERE id=:id");
    $query->bindParam("id", $id);
    $query->execute();
    }
    
    public function removeAccount($id){
    $conn = $this->GetConn();
    $query = $conn->prepare("DELETE FROM accounts WHERE id=:id");
    $query->bindParam("id", $id);
    $query->execute();
    }
    
    public function removeLink($id){
    $conn = $this->GetConn();
    $query = $conn->prepare("DELETE FROM links WHERE id=:id");
    $query->bindParam("id", $id);
    $query->execute();
    }
    }

    25. satırdaki RAND yazan kısmı değiştirmeniz gerekli. Eğer kullanıcılar id olarak tutuluyorsa id'ye göre ilk kullanıcıyı çekebilirsiniz. Veya son kullanıcıyı almak isterseniz ASC yazan yeri DESC yazabilirsiniz.

    SELECT * FROM accounts ORDER BY id ASC LIMIT 1
  • 16-01-2020, 21:43:10
    #3
    Üyeliği durduruldu
    Merhaba,

    SQL Sorgularında eğer ORDER BY RAND() ASC diye kullanıyorsanız bunu karışık olarak verir size

    Baştan Aşağı derseniz
    ORDEY BY id ASC Yapmanız gerekli
    Sondan Başa derseniz değer
    ORDER BY id DESC Yapmanız gereklidir.
  • 16-01-2020, 21:46:51
    #4
    Üyeliği durduruldu
    celalyesil adlı üyeden alıntı: mesajı görüntüle
    25. satırdaki RAND yazan kısmı değiştirmeniz gerekli. Eğer kullanıcılar id olarak tutuluyorsa id'ye göre ilk kullanıcıyı çekebilirsiniz. Veya son kullanıcıyı almak isterseniz ASC yazan yeri DESC yazabilirsiniz.

    SELECT * FROM accounts ORDER BY id ASC LIMIT 1
    Nuvem adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    SQL Sorgularında eğer ORDER BY RAND() ASC diye kullanıyorsanız bunu karışık olarak verir size

    Baştan Aşağı derseniz
    ORDEY BY id ASC Yapmanız gerekli
    Sondan Başa derseniz değer
    ORDER BY id DESC Yapmanız gereklidir.
    teşekkürler hocam mümkünse dosyanın düzenlenmiş halini ekleyebilirmisiniz, baştan aşağı kullanıcları sırayla alacak, bitince bot durmayacak tekrar başa saracak.BÖyle istiyorum ben yapınca hata aldım, bilgim sıfır:/ botu yapan arkadaş da kayıplarda.