IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Controle de correspondance entre deux variables d'une table


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Controle de correspondance entre deux variables d'une table
    Bonjour,
    ce que je souhaite faire et bien simple, mais voici mon problème :
    J'ai ici deux variables id_user_followed qui désigne l'ID de l'utilisateur suivi par un membre, et id_user_following, qui désigne vous l'aurez bien compris, l'ID de l'utilisateur qui suit l'autre membre.

    Voici donc un tableau de quelques id d'utilisateurs ainsi que les id des utilisateurs suivis par chacun, pour illustrer la chose :



    Le but est donc de contrôler pour un utilisateur donné, (auquel on visite actuellement le profil), que son id_user_followed est déjà enregistré pour l'id_user_following qui visite le profil, pour donc empêcher de s'abonner deux fois à un même utilisateur.

    Or, vous verrez dans mon code que la méthode que j'utilise est impropre, voilà pourquoi je demande votre aide :

    Admettons que je suis l'utilisateur avec l'id 2.
    Je souhaite que le code m'interdise de m'abonner à l'utilisateur 10, puisque comme vous le voyez dans le tableau ci-dessus, il existe déjà une correspondance entre son id et le miens, puisque je me suis déjà abonné à l'utilisateur 10.

    Le code que j'ai fait va commencer sa vérification dès la première ligne de la table, et dès qu'il trouve l'utilisateur avec l'id_user_followed égal à 10, il va prendre le premier id_user_following correspondant (ici le premier utilisateur dans l'ordre qui suit 10 est l'utilisateur 25) et le code s'arrête ici. Il a trouvé une correspondance, mais l'id correspondant (25) est différent de mon id (2) donc le code me laissera la possibilité de suivre 10, alors qu'une ligne plus bas, on voit bien que 2 suit l'utilisateur 10.
    Il devrait donc m'informer que je suis déjà l'utilisateur 10.

    La logique voulue serait donc, "pour tout id_user_followed=10, vérifier s' il existe id_user_following=id_user_connected" ainsi voir si mon id avec lequel je suis connecté suit déjà l'utilisateur pour lequel on visite le profil, c'est-à-dire ici id_user_followed.


    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
     
    $sql="SELECT id_user_following FROM follow WHERE id_user_followed=$data[id_user]";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data_following_process = mysql_fetch_assoc($req);
     
    if($data_following_process['id_user_following'] == $data_user_connected['id_user'])
    	{
    	echo "Vous suivez déjà cette personne";
    } Else {
     
    // Lien pour s'abonner (inutile de vous l'écrire ici...)
    	}
     
    ?>
    Je fais une tentative avec une boucle "for" mais qui n'a pas porté de fruits, peut-être à cause d'une erreur de manipulation de ma part.

    Je vous remercie d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    $sql="SELECT * FROM follow WHERE id_user_followed=$data[id_user] and id_user_following = $data_user_connected['id_user']";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
     
    if(mysql_num_rows($req) > 0)
    {
    	echo "Vous suivez déjà cette personne";
    } 
    Else 
    { 
    	// Lien pour s'abonner (inutile de vous l'écrire ici...)
    }
     
    ?>
    A la recherche d'un film : http://chercher-un-film.com

  3. #3
    Membre à l'essai
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Très juste ! Cela fonctionne parfaitement comme cela !

    Erreur de débutant !

    C'est résolu merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD18] Calcul entre deux colonnes d'une table
    Par Alex1993 dans le forum WinDev
    Réponses: 4
    Dernier message: 19/09/2013, 09h20
  2. [AC-2010] Erreur entre deux formulaires et une table
    Par byters dans le forum IHM
    Réponses: 4
    Dernier message: 08/05/2013, 23h58
  3. Réponses: 3
    Dernier message: 03/11/2009, 08h19
  4. calcul entre deux champs dans une table
    Par pomar dans le forum Access
    Réponses: 7
    Dernier message: 29/11/2006, 19h27
  5. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo