• 08-04-2018, 18:45:34
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba arkadaşlar PDO yeni yeni öğrenmekteyim veri çekerken kullandığım bir fonksiyon var

    örneğin aşağıdaki kod users tablosundan yetkisi 1 olanları gösteriyor bir koşul daha eklemek istesem olmuyor mesela $t = veriCek("users", "*", "yetki", "1","adsoyad","ali"); şeklinde adsoyada yada başka koşulları sorgulayamıyorum sadece 1 date sorgulayabiliyorum veriCek fonksiyonunda nasıl bir düzenleme yapsam istediğim sorguyu yapabilirim?

    header('Content-Type: text/html; charset=utf-8');
    $k_id = "root";
    $k_pass = "";
    $k_host = "localhost";
    $k_db = "kullanici";
    try {
        $db = new PDO("mysql:host={$k_host};dbname={$k_db};charset=utf8", $k_id, $k_pass);
      
        $db->exec("SET NAMES 'utf8';");
        $db->exec("SET CHARSET 'utf8;'");
     
    } catch ( PDOException $e ){
      
         die("DATABASE NOT FOUND!"); //
    }
    
    
    function veriCek($tablo, $alanlar, $sutun, $id)
    {
        global $db;
        
        $veri = $db->query("SELECT {$alanlar} FROM {$tablo} WHERE {$sutun} = '{$id}'");
        return $veri;
    }
    
    $t = veriCek("users", "*", "yetki", "1");
    
    
    
    while($row = $t->fetch(PDO::FETCH_OBJ)){
    echo $row->adsoyad."<BR>";
    }
  • 08-04-2018, 18:51:39
    #2
       $veri = $db->query("SELECT {$alanlar} FROM {$tablo} WHERE {$sutun} = '{$id}' AND {$ikincisutun} = '{$ikinciveri}'");    return $veri;}$t = veriCek("users", "*", "yetki", "1");
  • 08-04-2018, 18:53:37
    #3
    Merhaba, "veriCek" fonksiyonunu şu şekilde düzenlerseniz adsoyad sütunu ile birlikte sorgulayabilir hale getirebilirsiniz. Fakat bu fonksiyon çok kullanışsız onu söylemek isterim.
    function veriCek($tablo, $alanlar, $sutun, $id, $adsoyad, $veri)
    {
        global $db;
         
        $veri = $db->query("SELECT {$alanlar} FROM {$tablo} WHERE {$sutun} = '{$id}' AND {$adsoyad} = '{$veri}'");
        return $veri;
    }
  • 08-04-2018, 19:10:14
    #4
    hesapadim adlı üyeden alıntı: mesajı görüntüle
       $veri = $db->query("SELECT {$alanlar} FROM {$tablo} WHERE {$sutun} = '{$id}' AND {$ikincisutun} = '{$ikinciveri}'");    return $veri;}$t = veriCek("users", "*", "yetki", "1");
    ilginiz için teşekkürler hocam dediğiniz şekilde fonksiyona ikincisutun ve ikinciveri gibi tanımlamak ta gerekiyor yerine göre 5 sorgu ile kontrol yaptırılır yerine göre 1 sorgu ile dinamik olmalı
  • 13-04-2018, 22:08:40
    #5
    public function select(string $table, $where = false, $column = false, $operator = false, $logic = false, $orderBy = false, $orderOpt = false, $limit = false, $limitStart = false){    $sql    =   "SELECT";    if($column)    {        if(is_array($column))            $sql    .=  " ".implode(", ", $column)." FROM";        else            $sql    .=  " $column FROM";    }    else        $sql    .=  " * FROM";    $sql    .=  " $table";    if($where)    {        $sql    .=  " WHERE";        if(is_array($where))        {            $where_keys     =   array_keys($where);            $where_values   =   array_values($where);            $i              =   0;            foreach($where_keys as  $value)            {                if(isset($operator[$i]))                    $opt    =   $operator[$i];                else                    $opt    =   "=";                                if(isset($logic[$i]))                    $log    =   $logic[$i];                else                    $log    =   " and";                                                if($i < count($where_keys)-1)                    $sql    .=  " ".$value." ".$opt." :".$value." ".$log;                else                    $sql    .=  " ".$value." ".$opt." :".$value;                $i++;            }        }    }    if($orderBy && is_string($orderBy))    {        if($orderOpt)            $oOpt   =   $orderOpt;        else            $oOpt   =   "DESC";        $sql    .=  " ORDER BY $orderBy $oOpt";            }    if($limit)    {        if($limitStart)            $sql    .=  " LIMIT $limit, $limitStart";        else            $sql    .=  " LIMIT $limit";    }    $query  =   self::$connection;    $query  =   $query->prepare($sql);    if($where)    {        foreach($where as $key=>$value)        {            $query->bindValue("$key", $value);        }    }    $this->query  =   $query;    $query->execute();}
    Kendi yazdığım Database sınıfının select sorgu metodu. Tam sınıfı maalesef veremiyorum. Okuyabilirseniz size yol gösterecektir.