probleme bouton follow et unfollow

Bonjour à tous j'ai un nouveau problème :) .
La fonction des boutons follow et unfollow marchent mais par exemple quand je clique sur follow la requête et bien prise en compte mais lorsque je retourne sur le profil le bouton follow n'est pas remplacé par le bouton unfollow.
Merci d'avance pour toute aide :)

Voici le code de see_profile.php

<?php
$fo = $DB->query("SELECT *
FROM followers
INNER JOIN users
WHERE followers.id_follower = users.id
ORDER BY id", array($id));;

$fo = $fo->fetchAll();


if ($id_follower = $id) {
?>
<a class="btn btn-danger" href="unfollow.php?id=<?= $afficher_profil['id'] ?>">Unfollow</a>
<?php
}elseif ($id_follower = $id) {
?>
<a class="btn btn-primary" href="follow.php?id=<?= $afficher_profil['id'] ?>">Follow</a>
<?php
}
?>
Par Batfire le 12 Dec 2018
Cette pub permet au site de vivre ...

8 Commentaires

Batfire
Le 23 Dec 2018
J'ai trouvé merci beaucoup.
Clouder
Le 20 Dec 2018
Bizarre bizarre.. essaie avec :
  • prepare,
  • Execute 
Et regarde si ça marche 
Batfire
Le 19 Dec 2018
Oui elle provient bien de la.

Parse error: syntax error, unexpected 'array' (T_ARRAY) in C:\wamp64\www\sharing\see_profile.php on line 31
Clouder
Le 16 Dec 2018
L’erreur provient bien du array de la requête SQL ?
Batfire
Le 16 Dec 2018
Oui j'utilise bien la méthode de l'article ...
<?php

class connexionDB {
    private $host    = 'localhost';    // nom de l'host
    private $name    = 'sharing';     // nom de la base de donnée
    private $user    = 'root';         // utilisateur
    private $pass    = '';         // mot de passe
    private $connexion;

    function __construct($host = null, $name = null, $user = null, $pass = null){
        if($host != null){
            $this->host = $host;           
            $this->name = $name;           
            $this->user = $user;          
            $this->pass = $pass;
        }
    try{
        $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
            $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
            PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
    }catch (PDOException $e){
        echo 'Erreur : Impossible de se connecter  à la BDD !';
    die();
   }
  }
    public function query($sql, $data = array()){
        $req = $this->connexion->prepare($sql);
        $req->execute($data);

        return $req;
    }
    public function insert($sql, $data = array()){
        $req = $this->connexion->prepare($sql);
        $req->execute($data);
    }
}

// Faire une connexion à votre fonction
$DB = new connexionDB();


?>
Clouder
Le 16 Dec 2018
Pour ton erreur tu utilises bien les méthodes de cet article

Sinon il faudra faire avec une requête prepare et execute 🙂

Parfait ! Car quand tu visites un profil il faut que tu récupère son identifiant afin de récupérer toutes les informations de cet utilisateur
Batfire
Le 14 Dec 2018
Bonjour Clouder,
j'obtiens l'erreur:
Call to undefined function array() in 🙂

Sinon j'ai juste modifié ça :
$get_id_users_see_profile = (int) htmlentities(trim($_GET['id']));
Clouder
Le 13 Dec 2018
Bonjour Batfire, 🙂

Le problème que tu as vient de ta condition !

Bon j'imagine que dans ta table followers ta structure doit être du genre : 
id : qui s'auto incrémente,
id_user : l'id de la personne en cours ($_SESSION['id'])
id_follower : l'id de la personne que tu veux suivre.

Donc si je mets tous ça en oeuvre cela va donner ceci : 

<?php
// On récupère l'id de la personne que tu visites
$get_id_users_see_profile = $_GET['id'];

// Sur ta requête pas besoin de faire un inner on va juste vérifier que tu suis bien cette personne
$fo = $DB->query("SELECT f.id
FROM followers f
WHERE f.id_follower = ? AND f.id_user = ?",
array($get_id_users_see_profile, $_SESSION['id']));

// Tu dois avoir qu'un seul enregistrement donc on utilise fetch !
$fo = $fo->fetch();

// isset va te renvoyer vrai ou faux en fonction du résultat donc si tu ne le suis pas la valeur de
// retour sera faux sinon vrai si tu as un enregistrement
if (isset($fo['id'])) {
?>
<a class="btn btn-danger" href="unfollow.php?id=<?= $afficher_profil['id'] ?>">Unfollow</a>
<?php
}else{
?>
<a class="btn btn-primary" href="follow.php?id=<?= $afficher_profil['id'] ?>">Follow</a>
<?php
}
?>
Essai ça du coup 😀