Система добавления друзей в PHP не работает должным образом - PullRequest
0 голосов
/ 22 августа 2011

надеюсь, вы можете помочь мне здесь, я пробовал весь день выяснять это.

У меня есть система друзей и некоторые пользователи, они могут добавлять друг друга, и это прекрасно работает, но проблема в том, что они могут добавлять друг друга более одного раза.

Вот мой сценарий, который проверяет, являются ли они уже друзьями ..

но это не работает: (

<?
// connect Databasen
include('connect.php');
//hvis get bruger ikke er tom
if (!empty($_GET["bruger"])) {
//tjeker om venner er anøsgt i forvejen
$bruger = $_SESSION['username'];
$ven = $_GET["bruger"];
$tjek = mysql_query("SELECT * FROM venner WHERE username='$bruger' AND ven='$ven'");
if ($tjek) {
//indsæt
mysql_query("INSERT INTO venner VALUES('','$bruger','$ven','','nej')");
echo "venskab er ansøgt";
exit;
}
else {
echo "Du har allerede ansøgt";
}
}
?>

Ответы [ 3 ]

6 голосов
/ 22 августа 2011

Самое простое решение - создать уникальный индекс для venner:

CREATE UNIQUE INDEX akVenner (username, ven) ON venner;
1 голос
/ 22 августа 2011

Вам необходимо найти взаимосвязь двух форм независимо от того, кто их создал:

$tjek = mysql_query("SELECT * FROM venner 
    WHERE (username='$bruger' AND ven='$ven') OR 
    (username='$ven' AND ven='$bruger')");

if (mysql_num_rows($tjek)==0) {
1 голос
/ 22 августа 2011

Вы должны использовать:

if (mysql_num_rows($tjek) == 0) {
    INSERT SOMETHING
} else {
    DOING SOMETHING
}

Не забудьте использовать экранирование входных данных, чтобы избежать sql-инъекций.

...