• 30-08-2014, 19:24:42
    #1
    arkadaşlar ufaktan bir şeyler karaladım ama bi noktada takıldım. aşağıdaki kod ile butona tıklandığında oyunu favorilere ekliyor. fakat bi hata var ki o da aynı oyunu defalaraca ekleyebiliyor. ben sadece aynı userID ve aynı oyunID olan kişinin sadece bi defa eklemesini istiyorum. normal olanda bu sanırım. diğeri fazla yük bindirmekten başka bi işe yaramaz herhalde.

    $userID = $_GET["userID"];
    $oyunID = $_GET["oyunID"];
    $title = $_GET["title"];
    if($userID=="0"){
    	header("Location: index.php");
    } else {
    $control = $db->get_row("select * from favorites where userID = '".$userID." and oyunID = '".$oyunID."'");
    if($control<=1){
    $db->query("insert into favorites (id,userID,oyunID) values(null,$userID,$oyunID)");
    }
    }
  • 30-08-2014, 19:56:41
    #2
    if(mysql_num_rows($control)<=1){

    şeklinde deneyin.
  • 30-08-2014, 20:51:50
    #3
    Kernek adlı üyeden alıntı: mesajı görüntüle
    if(mysql_num_rows($control)<=1){

    şeklinde deneyin.
    benim verdiğim kodda aynı sanırım. çalışmadı malesef bu şekilde.
  • 30-08-2014, 21:06:16
    #4
    $userID = $_GET["userID"];
    $oyunID = $_GET["oyunID"];
    $title = $_GET["title"];
    if($userID=="0"){
       header("Location: index.php");
    } else {
    $control = $db->get_row("select count(*) as counter from favorites where userID = '".$userID." and oyunID = '".$oyunID."'");
    if($control->counter == 0){
    	$db->query("insert into favorites (id,userID,oyunID) values(null,$userID,$oyunID)");
    }
    yanlış anlamadıysam çalışması lazım. kolay gelsin.
  • 30-08-2014, 21:32:03
    #5
    CodeMaster_ adlı üyeden alıntı: mesajı görüntüle
    $userID = $_GET["userID"];
    $oyunID = $_GET["oyunID"];
    $title = $_GET["title"];
    if($userID=="0"){
       header("Location: index.php");
    } else {
    $control = $db->get_row("select count(*) as counter from favorites where userID = '".$userID." and oyunID = '".$oyunID."'");
    if($control->counter == 0){
    	$db->query("insert into favorites (id,userID,oyunID) values(null,$userID,$oyunID)");
    }
    yanlış anlamadıysam çalışması lazım. kolay gelsin.
    teşekkürler fakat çalışmadı hocam. istediğim şey o verileri sadece bi kez kaydetmesi.
  • 30-08-2014, 21:39:10
    #6
    şu $db classınızın yapısı nedir bilmiyorum fakat
    if($control<=1){ burada 1e eşit ve küçükse demişsiniz. eğer o $db->row o sorgudaki satır sayısını veriyorsa
    hiç yoksa ekle
    1 tane varsa ekle

    yapacaktır. onu <1 yaparsanız ya da == 0 yaparsanız hiç yoksa ekler.

    $s = mysql_query("select ... where ... limit 1");
    $adedi = mysql_num_rows($s);
    if($adedi == 0) {
    mysql_query("insert into....");
    }

    deneyebilirsiniz. classınıza göre mysql_query ve num_rows'u biçimlendirebilirsiniz
  • 30-08-2014, 21:43:53
    #7
    CodeMaster_ adlı üyeden alıntı: mesajı görüntüle
    $userID = $_GET["userID"];
    $oyunID = $_GET["oyunID"];
    $title = $_GET["title"];
    if($userID=="0"){
       header("Location: index.php");
    } else {
    $control = $db->get_row("select count(*) as counter from favorites where userID = '".$userID." and oyunID = '".$oyunID."'");
    if($control->counter == 0){
    	$db->query("insert into favorites (id,userID,oyunID) values(null,$userID,$oyunID)");
    }
    yanlış anlamadıysam çalışması lazım. kolay gelsin.
    @CodeMaster_; arkadaşın verdiği kod çalıştı. select ile başlayan sql kodunda ' (tırnak) işareti eksikti. onu düzelttim çalıştı. teşekkürler.
  • 30-08-2014, 21:46:31
    #8
    bluexpres adlı üyeden alıntı: mesajı görüntüle
    şu $db classınızın yapısı nedir bilmiyorum fakat
    if($control<=1){ burada 1e eşit ve küçükse demişsiniz. eğer o $db->row o sorgudaki satır sayısını veriyorsa
    hiç yoksa ekle
    1 tane varsa ekle

    yapacaktır. onu <1 yaparsanız ya da == 0 yaparsanız hiç yoksa ekler.

    $s = mysql_query("select ... where ... limit 1");
    $adedi = mysql_num_rows($s);
    if($adedi == 0) {
    mysql_query("insert into....");
    }

    deneyebilirsiniz. classınıza göre mysql_query ve num_rows'u biçimlendirebilirsiniz
    Evet haklısınız hocam aklımda sadece fonksiyon vardı rakama bakmadan yazmıştım neyse sorun kısaca çözülmüş.