• 26-05-2015, 09:12:14
    #1
    Merhaba arkadaşlar,
    Yazmış olduğum sorgu çalışmıyor internetten örneklerede baktım aynı mantıkta yazılmış fakat ben bir yerde hata yapıyorum çözemedim. Nerede hata yapıyor olabilirim?
    Yapmak istediğim limit sayısına göre listeleme yapması.
    $limit = 10;
    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = :cal_id AND loyaver_id = :loyaver_id ORDER BY time_id LIMIT :limit");
    	$seviye->bindValue(':cal_id', $_POST[option]);
    	$seviye->bindValue(':loyaver_id', $_POST[option6]);
    	$seviye->bindValue(':limit', (int) $limit, PDO::PARAM_INT);
    	$seviye->execute();
  • 26-05-2015, 09:26:56
    #2
    POST verilerini düzgün çekemiyorsunuz ondan kaynaklanıyor muhtemelen.

    Yanlış kullanım:
    $_POST[option]
    Doğru kullanım:
    $_POST['option']
    Ekstra olarak şöylede sorgulatabilirsin.

    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = :cal_id AND loyaver_id = :loyaver_id ORDER BY time_id LIMIT :limit");
    $islemgerceklestir = $seviye->execute(array(
    "cal_id" => $_POST['option'],
    "loyaver_id" => $_POST['option6'],
    "limit" => $limit
    ))
  • 26-05-2015, 09:36:21
    #3
    Kobra_fighterTR adlı üyeden alıntı: mesajı görüntüle
    POST verilerini düzgün çekemiyorsunuz ondan kaynaklanıyor muhtemelen.

    Yanlış kullanım:
    $_POST[option]
    Doğru kullanım:
    $_POST['option']
    Ekstra olarak şöylede sorgulatabilirsin.

    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = :cal_id AND loyaver_id = :loyaver_id ORDER BY time_id LIMIT :limit");
    $islemgerceklestir = $seviye->execute(array(
    "cal_id" => $_POST['option'],
    "loyaver_id" => $_POST['option6'],
    "limit" => $limit
    ))
    Öncelikle teşekkür ederim Dediklerinizi yaptım fakat olmadı sorgunuzuda denedim aynı şekilde sonuç vermedi :/
  • 26-05-2015, 09:55:50
    #4
    Justian0 adlı üyeden alıntı: mesajı görüntüle
    Öncelikle teşekkür ederim Dediklerinizi yaptım fakat olmadı sorgunuzuda denedim aynı şekilde sonuç vermedi :/
    Verdiği bir hata felan var mı?
    Birde bunu dener misiniz?
    $cal_id = $_POST['option'];
    $loyaver_id = $_POST['option6'];
    
    $seviye = $db->query("SELECT * FROM cal_ltime WHERE cal_id = $cal_id AND loyaver_id = $loyaver_id ORDER BY time_id LIMIT $limit")->fetchAll(PDO::FETCH_ASSOC);
    print_r($seviye);
    Ayriyeten videolu anlatımım:
    https://www.youtube.com/watch?v=q_sZ7mkoVng

    Eğer sorgu gerçekleşmiyorsa veriler gönderilmiyor olabilir yada tablo sütun isimleri yanlış olabilir.
  • 26-05-2015, 11:53:37
    #5
    Kobra_fighterTR adlı üyeden alıntı: mesajı görüntüle
    Verdiği bir hata felan var mı?
    Birde bunu dener misiniz?
    $cal_id = $_POST['option'];
    $loyaver_id = $_POST['option6'];
    
    $seviye = $db->query("SELECT * FROM cal_ltime WHERE cal_id = $cal_id AND loyaver_id = $loyaver_id ORDER BY time_id LIMIT $limit")->fetchAll(PDO::FETCH_ASSOC);
    print_r($seviye);
    Ayriyeten videolu anlatımım:
    https://www.youtube.com/watch?v=q_sZ7mkoVng

    Eğer sorgu gerçekleşmiyorsa veriler gönderilmiyor olabilir yada tablo sütun isimleri yanlış olabilir.
    yok hocam yine olmadı
    Çalışıyor ->
    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = ? AND loyaver_id = ? LIMIT 5");
    	$seviye->execute(array($cal_id,$loyaver_id));
    bu şekilde çalışmıyor ->
    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = ? AND loyaver_id = ? LIMIT ?");
    	$seviye->execute(array($cal_id,$loyaver_id,$limit));
    internette yaptığım araştırmalara göre int olarak değeri belirtmem gerekiyormuş onun içinde şöyle bir sorgu yazdım
    $seviye = $db->prepare("SELECT * FROM cal_ltime WHERE cal_id = :cal_id AND loyaver_id = :loyaver_id ORDER BY time_id LIMIT :limit");
    	$seviye->bindValue(':cal_id', $cal_id);
    	$seviye->bindValue(':loyaver_id', $loyaver_id);
    	$seviye->bindValue(':limit', (int) trim($limit), PDO::PARAM_INT;
    	$seviye->execute();
    yine çalışmadı
  • 26-05-2015, 12:40:38
    #6
    $limit değişkenini tanımladığınız satırı yazabilir misiniz?
  • 26-05-2015, 13:00:12
    #7
    Kobra_fighterTR adlı üyeden alıntı: mesajı görüntüle
    $limit değişkenini tanımladığınız satırı yazabilir misiniz?
    buyrun hocam
    $limit = 5;
  • 26-05-2015, 14:26:27
    #8
    Execute satırından önce aşağıdaki kodu yazıp denermisiniz?

    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
    Ve trim ve (int) kodunu kaldırın hocam gereksiz. Çünkü PDO::PARAM_INT yaparak integer olduğunu belirtiyorsunuz.
  • 26-05-2015, 14:32:43
    #9
    Kobra_fighterTR adlı üyeden alıntı: mesajı görüntüle
    Execute satırından önce aşağıdaki kodu yazıp denermisiniz?

    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
    Ve trim ve (int) kodunu kaldırın hocam gereksiz. Çünkü PDO::PARAM_INT yaparak integer olduğunu belirtiyorsunuz.
    hata ")" unutmuşum sorguda şaka gibi ya teşekkürler hocam sizi de uğraştırdım epey kusura bakmayın