2010-10-10 8 views
0

Ma base de donnéesphp mysql si id dans le champ

commentaires

ID mID aID attachID 
1  1  6  1  
2  2  6  1 
3  3  6  1 
4  8  6  2 
5  4  6  2 

Alors je voudrais pour permettre l'accès à l'utilisateur d'accéder à MiD attachID.

S'ils affichent attachID ID 1, les utilisateurs possédant une IDM de 1 ou 2 ou 3 peuvent voir. le repos mID ne peut pas.

EDIT: pour attachID 1, les utilisateurs avec mID 1 peuvent voir quel autre utilisateur mID peut également voir.

Quelle serait la meilleure approche pour y parvenir?

Répondre

1
function authorize($m_id, $a_id) { 
    $query = <<<SQL 
     SELECT 
     TRUE 
     FROM 
     db.Table 
     WHERE 
     m_id = $m_id 
     AND a_id = $_aid 
SQL; 
    return mysql_num_rows(mysql_query($query)); 
} 

Cette fonction retournera TRUE si m_id est autorisé pour a_id, false sinon. Puis sur votre page php vous avez quelque chose comme:

if (!authorize($m_id, $a_id)) { 
    header('Location: /not_authorized.php'); 
} 
// Show normal apge for authorized user 
+0

Bonjour, j'ai oublié d'ajouter 1 autre partie à la question. Pour attachID 1, les utilisateurs avec mID 1 peuvent voir quel autre utilisateur mID peut également voir. – cicakman

+0

Plusieurs façons de gérer cela alors. Vous pouvez vérifier si le mID est 1 en premier (changer la requête) pour retourner TRUE, comme: WHERE mID = 1 OU (mID = $ mID et attachID = $ attachID) –

0

Si renvoie 0, l'utilisateur est pas autorisé à afficher:

select count(1) from comments where mID = '$mID' and attachID = '$attachID' 

Obtenir tous MIDS pour une attachID donnée qui peut ensuite être affiché à la l'utilisateur visualisant l'ID attaché donné:

select mID from comments where attachID = '$attachID' 
+0

salut, j'ai oublié d'ajouter 1 partie de plus à la question. pour attachID 1, les utilisateurs avec mID 1 peuvent voir quel autre utilisateur mID peut voir aussi – cicakman

Questions connexes