rowCount followers
- Accueil
- Forum
- Programmation
- PHP
- rowCount followers
Balatharas Le 30 juin 2016 à 21:48 (Édité le 25 janvier 2019 à 17:51)
$followers = $bdd->prepare('SELECT id FROM membres WHERE id_follower = ?');
$followers->execute(array(/*ICIII*/));
$followers = $followers->rowCount();
<p><font size="4">Abonnés: <?= $followers; ?></font></p>
Je veux juste afficher le nombre de personnes qui suivent un utilisateur comme pour les parrainés:
<?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>
Merci ! TheOldNoob Le 2 juillet 2016 à 22:48 (Édité le 1 janvier 1970 à 01:00)
Et si tu met juste rien? 😀
Balatharas Le 2 juillet 2016 à 23:32 (Édité le 2 juillet 2016 à 23:32)
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\**********\profil.php on line 181
Balatharas Le 2 juillet 2016 à 23:33 (Édité le 1 janvier 1970 à 01:00)
Profil introuvable Le 3 juillet 2016 à 02:11 (Édité le 1 janvier 1970 à 01:00)
Du coup tu as réussi à résoudre ton problème ou il manque quelque chose ?
AlexCode Le 3 juillet 2016 à 20:16 (Édité le 1 janvier 1970 à 01:00)
Moi quand j'essaye de faire un count je fais ce genre de requête, je l'utilise actuellement donc elle est fonctionnelle !
Donne moi ton retour !
$req = $bdd->query("SELECT count(*) as nb FROM X WHERE X");
$nb = $req->fetch();
$nb_user = $nb['nb'];
Alex Balatharas Le 3 juillet 2016 à 20:28 (Édité le 3 juillet 2016 à 20:35)
$reqfollowers = $bdd->query("SELECT count(id_following) as follow FROM membres WHERE id_following = ?");
$followers = count($reqfollowers);
$nbfollowers = $followers['nb'];
Je suis quasi certain d'avoir mal compris quelque chose. Pourrais tu me décrire la première et dernière ligne ?
Lorsque j'ai mis ceci, je n'ai pas eu d'erreur mais rien n'est affiché....
Je pense ne pas avoir apporté assez de précisions. Voici mon fichier 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']);
?>
Pour s'abonner dans le profil:
<?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
}
}
?>
AlexCode Le 3 juillet 2016 à 20:41 (Édité le 1 janvier 1970 à 01:00)
$req = $bdd->query("SELECT count(*) as nb FROM X WHERE X");
$nb = $req->fetch();
$nb_user = $nb['nb'];
Alors tout simplement, tu fais ta requête (ligne 1) sur ta base de donnée. le count(*), compte le nombre de lignes pour laquelle tu donnes tes paramètres suivant... Le "as nb" te traduit cela en nombre donc il est obligatoire.
La dernière te traduit juste le nombre en une variable directement intégrable dans ton code.
Essaye plutôt :
$reqfollowers = $bdd->query("SELECT count(id_following) as nb FROM membres WHERE id_following = ?");
$followers = $reqfollowers->fetch();
$nbfollowers = $followers['nb'];
Alex Balatharas Le 3 juillet 2016 à 20:48 (Édité le 3 juillet 2016 à 20:49)
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\**********\profil.php on line 181As-tu une solution ?
EDIT: Voici un screen de ma base:
AlexCode Le 3 juillet 2016 à 20:52 (Édité le 1 janvier 1970 à 01:00)
id_following = ?
Balatharas Le 3 juillet 2016 à 20:55 (Édité le 1 janvier 1970 à 01:00)
AlexCode Le 3 juillet 2016 à 21:02 (Édité le 1 janvier 1970 à 01:00)
Tu vas mieux le faire que moi, dans le count() tu mets ce que tu souhaites compter donc si j'ai bien compris tes followers : id_follower et dans le WHERE le id du membre.
$reqfollowers = $bdd->query("SELECT count(id_follower) as nb FROM membres WHERE id = ?");
$followers = $reqfollowers->fetch();
$nbfollowers = $followers['nb'];
Dis moi si ça va mieux ! Balatharas Le 3 juillet 2016 à 21:38 (Édité le 1 janvier 1970 à 01:00)
AlexCode Le 3 juillet 2016 à 21:52 (Édité le 3 juillet 2016 à 21:52)
tu mets bien $_SESSION['id'] ?
Comme ceci :
$reqfollowers = $bdd->query("SELECT count(id_follower) as nb FROM membres WHERE id = '".$_SESSION['id']."'");
$followers = $reqfollowers->fetch();
$nbfollowers = $followers['nb'];
Alex Balatharas Le 5 juillet 2016 à 15:00 (Édité le 1 janvier 1970 à 01:00)
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\**********\profil.php on line 181Cependant je ne comprends pas pourquoi tu souhaite mettre la table membres alors qu'elle ne contient aucune infos concernant le follow, et id = '".$_SESSION['id']."' .
Balatharas Le 6 juillet 2016 à 19:46 (Édité le 1 janvier 1970 à 01:00)
//GET id pour afficher abonnés:
$getfollowid = intval($_GET['id']);
$reqfollow = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
$reqfollow->execute(array($getfollowid));
$userinfo = $reqfollow->fetch();
//Affichage
<?php
$reqfollowers = $bdd->prepare('SELECT id_follower FROM follow WHERE id_following = ?');
$reqfollowers->execute(array($getfollowid));
$nbfollowers = $reqfollowers->rowCount();
?>
<p><font size="4">Abonnés: <?= $nbfollowers; ?></font></p>
Merci pour votre aide