2010-06-27 4 views
0

J'essaye d'empêcher des membres de s'ajouter eux-mêmes en tant qu'ami mais je ne peux pas sembler l'obtenir pour travailler la dernière ligne de code dans ma requête MySQL AND '$user_id' <> '$friend_id' essaye de vérifier si l'id d'utilisateur est le même que l'identifiant de l'ami et si c'est le cas, arrêtez d'exécuter la requête, mais pour une raison quelconque, le code sera toujours exécuté.Requête MySQL Question?

Comment résoudre ce problème afin que la requête cesse de s'exécuter lorsque l'utilisateur essaie de se ajouter en tant qu'ami?

Voici la requête MySQL.

SELECT * 
FROM friends 
WHERE user_id = '$user_id' 
AND friend_id = '$friend_id' 
AND '$user_id' <> '$friend_id' 

Voici la table MySQL.

CREATE TABLE friends (
id INT UNSIGNED NOT NULL AUTO_INCREMENT, 
user_id INT UNSIGNED NOT NULL, 
friend_id INT UNSIGNED NOT NULL, 
PRIMARY KEY (id), 
); 

Répondre

1

Pourquoi vous ne pouvez pas le faire aussi simple que cela ..

Vous auriez une forme de cours qui soumet l'ID utilisateur et le friendID. par exemple la forme des valeurs présentées sont ..

$user_id; 
$friend_id; 

Alors, pourquoi ne pas pouvez-vous comparer

if($user_id == $friend_id) { 
    //user has selected himself as friend 
} 
else { 
    // different user has been selected as friend 
} 

Si je ne me trompe pas, également sous la forme que vous pouvez restreindre ne pas afficher ID propre pour sélectionner comme ami.

un commentaire?

0

devrait fonctionner (en supposant que vous useing PHP).

0

Que voulez-vous archiver avec votre requête de sélection?

Pour l'instant, il semble que vous souhaitiez afficher tous les amis d'un utilisateur. Si c'est le cas, vous devriez empêcher un utilisateur de s'inscrire comme ami plus tôt. Vérifiez si c'est un ami légitime lorsque vous faites votre instruction d'insertion.

Ainsi, vous n'avez pas de mauvaises données dans votre base de données et vous enregistrez des ressources de base de données car la base de données n'a pas à vérifier chaque fois que vous affichez les amis.

0

La requête SELECT n'est pas là où vous devez travailler pour empêcher les utilisateurs de s'ajouter en tant qu'amis. Vous devriez avoir une instruction INSERT quelque part dans votre code et c'est sur elle que vous devez travailler. Vous pouvez simplement tester si $ user_id == $ friend_id et ne pas émettre l'instruction INSERT si la valeur est true.

Vous aurez aussi besoin de "nettoyer" votre table d'amis existant:

DELETE FROM friends WHERE user_id = friend_id;