Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher nombre d'abonnés

Sujet résolu
    1 juillet 2016 à 21:39:06

    Salut ! Je me sens idiot, je ne sais que mettre dans le tableau d'exécution que voici:

    <?php
    $followers = $bdd->prepare('SELECT id FROM membres WHERE id_follower = ?');
    $followers->execute(array(/*ICII*/));
    $followers = $followers->rowCount();
    ?>																	
    <p><font size="4">Abonnés: <?= $followers; ?></font></p>


    Je voudrais afficher le nombre de personne qui suivent une personne. Je me suis inspiré du code de l'affichage du nombre de personne qu'un utilisateur parraine:

    <?php
    $parrainages = $bdd->prepare('SELECT id FROM membres WHERE id_parrain = ?');
    $parrainages->execute(array($getid));
    $parrainages = $parrainages->rowCount();
    ?>							
    <p><font size="4">Parrainages: <?= $parrainages; ?></font></p>

    Je sais que certaines personnes me diront "il ne faut pas utiliser rowCount" mais pour $parrainages ça fonctionne comme j'en ai envie donc cela me va.

     EDIT: LE PROBLEME N'EST PAS POUR $parrainages MAIS POUR L'AFFICHAGE DU NOMBRE DE PERSONNE QUI FOLLOW UNE AUTRE !!

    Merci !

    -
    Edité par Beignet 2 juillet 2016 à 23:20:05

    • Partager sur Facebook
    • Partager sur Twitter
      2 juillet 2016 à 20:15:30

      Tu as essayé avec :

      <?php
      $parrainages = $bdd->prepare('SELECT id FROM membres WHERE id_parrain = ?');
      $parrainages->execute(array($getid));
      $parrainages = count($parrainages); //Line modifié
      ?>                          
      <p><font size="4">Parrainages: <?= $parrainages; ?></font></p>



      -
      Edité par Pareil 2 juillet 2016 à 20:15:59

      • Partager sur Facebook
      • Partager sur Twitter
        2 juillet 2016 à 20:26:28

        Salut @Pareil, 

        • Ce n'est pas $parrainages qui pose problème mais $followers
        • Quand je mets count au lieu de rowCount(); le résultat passe de 2 parrainages a 1.

        -
        Edité par Beignet 2 juillet 2016 à 20:40:06

        • Partager sur Facebook
        • Partager sur Twitter
          2 juillet 2016 à 20:50:34

          TU pourrais montrer un screen de ta table ou y'a la colonnes followers déjà car y'a plusieurs possibilité de les rentrées ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            2 juillet 2016 à 20:50:57

            Salut, :)

            Pourquoi ne fais-tu pas ton comptage dans la requête SQL ?

            $nombreParrainages = $bdd->prepare('SELECT count(id) FROM membres WHERE id_parrain = ?');
            $nombreParrainages = execute(array($l_id_parrain_que_tu_souhaite_compter));
            <p><font size="4">Parrainages: <?= $nombreParrainages; ?></font></p>

            Ou j'ai mal compris ton problème ? ^^'

            -
            Edité par Anonyme 2 juillet 2016 à 20:53:45

            • Partager sur Facebook
            • Partager sur Twitter
              2 juillet 2016 à 20:52:24

              Edit, Car le Mr du dessus à edit son message ^^' !

              -
              Edité par Pareil 2 juillet 2016 à 20:57:30

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                2 juillet 2016 à 20:54:59

                EDIT : J'ai édité mon précédent message ! ^^'

                -
                Edité par Anonyme 2 juillet 2016 à 21:17:42

                • Partager sur Facebook
                • Partager sur Twitter
                  2 juillet 2016 à 21:12:10

                  Salutations,

                  Je suppose qu'un utilisateur peut avoir plusieurs followers, et qu'un follower peut suivre plusieurs utilisateurs... Tu dois donc avoir une table de liaison avec l'id de l'utilisateur et l'id du follower.

                  Donc un count idFollower sur cette table en fonction de l'utilisateur me parait le plus simple...

                  -
                  Edité par Pierre-Yves Galland 2 juillet 2016 à 21:12:50

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Désolé, je ne réponds pas aux questions techniques posées par MP...
                    2 juillet 2016 à 23:15:55

                    Merci pour vos réponses. Voici un screen de la table:

                    followJe vais tester vos suggestions.

                    Cependant @Brynanum le problème n'est pas du tout sur $parrainages ^^' mais sur $follower

                    -
                    Edité par Beignet 2 juillet 2016 à 23:17:31

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 juillet 2016 à 23:17:48

                      Pas très explicites les noms de tes colonnes...

                      Qui est l'utilisateur ? Qui est le follower ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Désolé, je ne réponds pas aux questions techniques posées par MP...
                        2 juillet 2016 à 23:26:59

                        Pierre-Yves Galland a écrit:

                        Pas très explicites les noms de tes colonnes...

                        Qui est l'utilisateur ? Qui est le follower ?


                        En gros dans mon espace membre j'utilise l'id de mes membres défini lors de l'inscription. 

                        • id correspond a l'id du follow
                        • id_follower est l'id de l'abonné, qui suit id_following
                        • id_following est l'id de celui qui est suivi par id_follower
                        Est-ce mieux ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 juillet 2016 à 23:39:03

                          id_followed pour l'utilisateur qui est suivi et id_following pour l'utilisateur qui suit aurait été pas mal, mais là n'est pas le problème...

                          Pour avoir le nombre de follower pour un utilisateur donné, tu as juste à faire un COUNT de id_follower sur ta table avec une condition sur l'id_following.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Désolé, je ne réponds pas aux questions techniques posées par MP...
                            5 juillet 2016 à 15:06:19

                            Bonjour Pierre-Yves, désolé de ma réponse tardive !

                            Voici ce que j'ai tenté:

                            <?php
                            	$reqfollowers = $bdd->query("SELECT id_follower as nb FROM follow WHERE id_following = ?");
                            	$followers = count($reqfollowers);
                            	$nbfollowers = $followers['nb'];
                            ?>																
                            <p><font size="4">Abonnés: <?= $nbfollowers; ?></font></p>


                            Mais j'obtiens:

                            Abonnés: 1 

                            J'ai fais des tests et même si plusieurs utilisateurs s'abonnent, cela reste a 1. Pouvez vous m'aidez ?

                            • Partager sur Facebook
                            • Partager sur Twitter
                              5 juillet 2016 à 15:15:45

                              Salut, au lieu de faire un count après ta requête tu fais directement dedans, comme Brynanum a déjà écrit. 

                              <?php
                                  $reqfollowers = $bdd->query("SELECT COUNT(id_follower) as nb FROM follow WHERE id_following = ?");
                                  $nbfollowers = $followers;
                              ?>                                                              
                              <p><font size="4">Abonnés: <?= $nbfollowers; ?></font></p>

                              (je n'ai pas testé, mais c'est ce qui me vient à l'esprit)

                              Ensuite il ne te reste plus qu'à récupérer le chiffre et en faire ce que tu veux. Par contre

                              Pourquoi 

                              <?= $nbfollowers; ?>

                              ?

                              <?php echo $nbfollowers; ?>

                              ne serait il pas mieux?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 juillet 2016 à 15:32:30

                                Salut @Ryukotsei !

                                C'est pareil :(

                                Par contre 

                                Pour 

                                <?= $nbfollowers; ?>

                                C'est un raccourci de

                                <?php echo $nbfollowers; ?>

                                :D

                                Bon je n'ai toujours pas de solution :(


                                -
                                Edité par Beignet 5 juillet 2016 à 15:33:03

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 juillet 2016 à 15:35:58

                                  Ah autant pour moi pour ça je savais pas.

                                  Ca te fait un messag d'erreur ce que j'ai proposé? 

                                  <?php
                                      $reqfollowers = $bdd->query("SELECT COUNT(id_follower) as nb FROM follow WHERE id_following = ?");
                                      $reqfollowers = execute(array($id_following_concerné));
                                  ?>                                                             
                                  <p><font size="4">Abonnés: <?= $nbfollowers; ?></font></p>

                                  -
                                  Edité par Ryukotsei 5 juillet 2016 à 15:36:47

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 juillet 2016 à 15:52:46

                                    Fatal error: Call to undefined function execute() in C:\wamp\www\**********\profil.php on line 181


                                    C'est normal cette erreur car tu as fait un query, il faut faire un prepare je pense (de la bdd) mais ça ne règle rien..

                                    Et je ne vois pas quoi mettre comme variable dans le array ! C'est d'ailleurs mon problème du tout départ :'( .

                                    Il faut également définir $nbfollowers ce que tu as oublié de faire

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 juillet 2016 à 16:00:01

                                      oui en effet j'ai oublié de faire ça. ça serait $bdd->prepare et après exec; 

                                      bah si tu t'inspire de parrainage, il faut que tu récupère l'id de la personne à laquelle tu compte les followers. Si c'est pareil que parainnage tu t'en inspires. 

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        5 juillet 2016 à 16:01:37

                                        Et aurais-tu un autre code a me proposer ? Je suis perdu :(

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          5 juillet 2016 à 16:03:20

                                          A vrai dire, je ne sais pas la structure exacte de ton code, tu ne montres que les requêtes, on ne voit même pas comment l'id du parrain est récupéré, je ne peux pas trop aider pour ça ^^"

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            5 juillet 2016 à 16:05:10

                                            Voilà:

                                            if(isset($_GET['id']) AND $_GET['id'] > 0)
                                            {
                                            	$getid = intval($_GET['id']);
                                            	$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
                                            	$requser->execute(array($getid));
                                            	$userinfo = $requser->fetch();



                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              5 juillet 2016 à 16:06:31

                                              oki donc tu fais un formulaire pour avoir l'id du parrain. 

                                              Tu fais de même pour un membre?

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                5 juillet 2016 à 16:09:03

                                                Je ne vois pas ton code de formulaire donc je ne connais pas les champs, mais là je suppose que pour les parrains, tu as une liste déroulante ou un truc du genre, qui te permet de récupérer l'identifiant du parrain. J'ai pas raison?

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 juillet 2016 à 16:17:31

                                                  Non, lors de l'inscrption un code de parrainage est défini dans ma base de données, et si un utilisateur clique sur:

                                                  http://monsite.xyz/inscription.php?p=codedeparrainage

                                                  Alors il sera parrainé par le "propriétaire" du code. Dans ma BDD je définis l'id du parrain dans les données du parrainné et l'id du filleul dans les données du parrain.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    5 juillet 2016 à 16:31:11

                                                    OOOh je vois.  Et comment tu gères tes follows donc (follower et following)?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      5 juillet 2016 à 16:48:17

                                                      <?php
                                                      						if(isset($_SESSION['id']) AND $_SESSION['id'] != $getid)
                                                      						{
                                                      							$isfollowingornot = $bdd->prepare('SELECT * FROM follow WHERE id_follower = ? AND id_following = ?');
                                                      							$isfollowingornot->execute(array($_SESSION['id'], $getid));
                                                      							$isfollowingornot = $isfollowingornot->rowCount();
                                                      							if($isfollowingornot == 1) {
                                                      						?>
                                                      						Vous suivez cette personne !<br /><a href="follow.php?followedid=<?= $getid; ?>"><font size="4"><img src="files/img/unfollow.png" /> Ne plus suivre</font></a>
                                                      						<?php } else {  ?>
                                                      						<a href="follow.php?followedid=<?= $getid; ?>"><img src="files/img/follow.png" /> <font size="4">Suivre</font></a>
                                                      						<?php
                                                      							}
                                                      						}
                                                      						?>

                                                      Quand on clique sur: Suivre alors ca devient Ne plus suivre.

                                                      follow.php:

                                                      <?php
                                                      session_start();
                                                      require ('files/config.php');
                                                      
                                                      $getfollowedid = intval($_GET['followedid']);
                                                      if($getfollowedid != $_SESSION['id'])
                                                      {
                                                          $dejafollowed = $bdd->prepare('SELECT * FROM follow WHERE  id_follower = ? AND id_following = ? ' );
                                                          $dejafollowed->execute(array($_SESSION['id'], $getfollowedid));
                                                          $dejafollowed = $dejafollowed->rowCount();
                                                          if($dejafollowed == 0)
                                                          {
                                                             $addfollow = $bdd->prepare('INSERT INTO follow(id_follower, id_following) VALUES(?, ?)');
                                                             $addfollow->execute(array($_SESSION['id'],$getfollowedid));
                                                          }
                                                          elseif ($dejafollowed == 1)
                                                          { 
                                                               $deletefollow = $bdd->prepare('DELETE FROM follow WHERE id_follower = ? AND id_following = ?');
                                                               $deletefollow->execute(array($_SESSION['id'],$getfollowedid));
                                                          }
                                                      }
                                                      header('Location:' .$_SERVER['HTTP_REFERER']);
                                                      ?>



                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        5 juillet 2016 à 16:51:33

                                                        $_SESSION["id"]c'est un type connecté?

                                                        c'est de lui par exemple qu'on cherche le nombre de followers?

                                                        Si c'est le cas tu n'as qu'à mettre ceci dans ton tableau ^^.

                                                        -
                                                        Edité par Ryukotsei 5 juillet 2016 à 17:03:44

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          5 juillet 2016 à 17:20:42

                                                          Mais non ! xD Je veux afficher le nombre d'abonnés de la personne auquel on est en train de regarder son profil !
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          Afficher nombre d'abonnés

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown