Arkadaşım ilişki zaten var olmadığını kontrol edin

5 Cevap php

Neden bu kod işe alışkanlık? Ben eklemeden önce kullanıcıların zaten arkadaş olup olmadığını kontrol etmek istiyorum.

function addFriend() 
{
    global $userid, $friendid;
    $check = mysql_query("SELECT * FROM friends WHERE userid = $userid AND friendid = $friendid");  
    if (mysql_num_rows($check) == 1)
    {
        exit("Youre already friend with this user");
    } 
    else 
    {
        $sql = "INSERT INTO friends (userid, friendid) VALUES ($userid, $friendid)";
        mysql_query($sql);

        if ($sql)
             echo "Success";
        else 
             echo "Failure";
    }
}

5 Cevap

Bu sorunuza cevap olmayabilir ama $sql bunu Yukarıdaki 3 satır set beri yanlış olacak asla.

Sen mysql_num_rows($check) == 1 mysql_num_rows($check) >= 1 veritabanı alan çiftleri üzerinde herhangi benzersiz constrants yok örtmek için değiştirmek isteyebilirsiniz.

Değiştir:

$sql = "INSERT INTO friends (userid, friendid) VALUES ($userid, $friendid)";
mysql_query($sql);
if ($sql)
  echo "Success";
else 
  echo "Failure";
}

için:

$sql = "INSERT INTO friends (userid, friendid) VALUES ($userid, $friendid)";
mysql_query($sql);
if (mysql_affected_rows()) {
  echo "Success";
else 
  echo "Failure";
}

mysql_affected_rows() bakın.

Eğer $sql boş veya değil ve sadece (sorgu için SQL olmak) ona bir boş olmayan bir değer atanmış ettik çünkü öyle olmadığını test ediyoruz beri ilk sürümü her zaman başarı dönecektir .

Siz de sorguda ters durum da dahil olmak denedin mi? Ben arkadaşım tablo istek sırasına ile arkadaş kim gösterir inanıyorum. Yani bir arkadaş olarak istemek, ben kullanıcı olurdu, ama sen beni istedi, ben arkadaşım kimliği olacaktır. Yani aynı userid = $ FriendId ve FriendId = $ kimliği kontrol etmeniz gerekir.

O olabilir mi? Tam olarak sorun ne soruda söylemek zor.

NOT: Ben bir PHP uzmanı değilim, bu yüzden benim yanıt kendini PHP kesinlikle Facebook API ve değildir. Muhtemelen benim cevap :-) indirgenen alabilirsiniz kala belirten

Mike B, yukarıda söylediğim gibi sorguya ayarlayın, çünkü $sql yanlış olmayacak. Sen bir değişkene sorgunun sonucunu ayarlamak ve o test etmek gerekir:

$result = mysql_query($sql);
if ($result)
    echo "Success";
else 
    echo "Failure";
}

o sabit

arkadaşlar tablosunda herhangi auto_increcement yoktu