Afficher la liste de amis PDO
Résolu
carterj
Messages postés
45
Statut
Membre
-
carterj Messages postés 45 Statut Membre -
carterj Messages postés 45 Statut Membre -
Bonjour,
voila je chercher depuis sans résultat comment afficher la liste d'amis des users help ! please
voila je chercher depuis sans résultat comment afficher la liste d'amis des users help ! please
A voir également:
- Afficher la liste de amis PDO
- Liste déroulante excel - Guide
- Voir liste d'amis facebook - Guide
- Comment cacher la liste d'amis sur facebook - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
5 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir, peux-tu décrire la structure de ta base de données?
carterj
Messages postés
45
Statut
Membre
1
bonjour j'ai une table users avec des users ^^ et une table des amies friends_relationship ( user_id1, user_id2, status, created_at), merci d'avance
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
1 585
>
carterj
Messages postés
45
Statut
Membre
si jamais tu voulais de l'aide, n'hésite pas à expliquer la signification de chacun des champ, ou même à donner un exemple.
Bonjour,
Nous ne sommes pas là pour faire le travail à votre place ni pour remplacer votre moteur de recherches...
Merci de nous décrire précisément votre problème ainsi que le code déjà réalisé.
Merci également de lire ceci :
Cliquez ici pour des conseils d'écriture des messages.
NB : Pour poster votre code, merci de penser à utiliser la coloration syntaxique.
Nous ne sommes pas là pour faire le travail à votre place ni pour remplacer votre moteur de recherches...
Merci de nous décrire précisément votre problème ainsi que le code déjà réalisé.
Merci également de lire ceci :
Cliquez ici pour des conseils d'écriture des messages.
NB : Pour poster votre code, merci de penser à utiliser la coloration syntaxique.
Merci pour vos réponse voila le code déjà réaliser
le champ user_id1 = l'id du membre
le champs user_id2 = l'id de l'amie..
l’erreur elle afffiche toujour "Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez" alors que l'utilisateur a des amies
<?php
// recupere les info daans la bdd
$dox = $db->prepare('SELECT (user_id1 + user_id2 - :id) AS user_id2 FROM friends_relationships LEFT JOIN users ON id = (user_id1 + user_id2 - :id) WHERE (user_id1 = :id OR user_id1 = :id) AND status = :1 ');
$dox->bindValue(':id',$id,PDO::PARAM_INT);
$dox->bindValue(':1','1',PDO::PARAM_STR);
$dox->execute();
// si le user n'a pas dami on lui affiche une echo...
if($dox->rowCount() == 0){
echo "Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez";
}
// Affichage de nombre d'amies avec while
while ($data = $dox->fetch(PDO::FETCH_ASSOC)){ ?>
<img src="<?= $data->avatar ? $data->avatar : get_avatar_url($data->email) ?>"
class="avatar-xs" style="width: 50px; height: 50px;"> <?php echo htmlspecialchars(trim($data['pseudo'])); ?>
<?php
}
?>
le champ user_id1 = l'id du membre
le champs user_id2 = l'id de l'amie..
l’erreur elle afffiche toujour "Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez" alors que l'utilisateur a des amies
peut-être ainsi:
ou bien
SELECT user_id2 FROM friends_relationships WHERE user_id1 = :id AND status = :1 UNION SELECT user_id1 FROM friends_relationships WHERE user_id2 = :id AND status = :1
ou bien
SELECT user_id2, avatar, email FROM friends_relationships, users WHERE user_id1 = :id AND status = :1 AND id = user_id2 UNION SELECT user_id1, avatar, email FROM friends_relationships, users WHERE user_id2 = :id AND status = :1 AND id = user_id1
merci !! mais se toujours la même erreur qui s'affiche :(
$dox = $db->prepare("SELECT user_id2, avatar, email FROM friends_relationships, users WHERE user_id1 = :id AND status = :1 AND id = user_id2
UNION
SELECT user_id1, avatar, email FROM friends_relationships, users WHERE user_id2 = :id AND status = :1 AND id = user_id1");
Bonjour,
Avant tout .. j'espère que tu as activé la gestion des erreurs PDO.
Voir ici comment faire :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite,
- On place ses requêtes dans des blocs TRY/CATCH
- On n'utilise pas ROWCOUNT en PDO ! A la place on fera un fetchAll (avec si besoin, un count sur l'array $result ))
- On évite d'ouvrir/fermer des balises php à tout va.... A la place on génèrera le html dans des echo.
Bref... ton code remis en forme devrait ressembler à ceci :
(tu remarqueras que j'ai refait la requête .... mais sans connaitre la structure exacte de tes tables difficiles de savoir si elle marchera du premier coup. )
Cordialement,
Jordane
Avant tout .. j'espère que tu as activé la gestion des erreurs PDO.
Voir ici comment faire :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite,
- On place ses requêtes dans des blocs TRY/CATCH
- On n'utilise pas ROWCOUNT en PDO ! A la place on fera un fetchAll (avec si besoin, un count sur l'array $result ))
- On évite d'ouvrir/fermer des balises php à tout va.... A la place on génèrera le html dans des echo.
Bref... ton code remis en forme devrait ressembler à ceci :
(tu remarqueras que j'ai refait la requête .... mais sans connaitre la structure exacte de tes tables difficiles de savoir si elle marchera du premier coup. )
<?php
// recupere les info daans la bdd
$sql = 'SELECT FR.user_id1
,U1.id as id_user1
,U1.avatar as avatar1
,U1.email as email1
,U1.pseudo as pseudo1
,FR.user_id2
,U2.id as id_usr2
,U2.avatar as avatar2
,U2.email as email2
,U2.pseudo as pseudo2
FROM friends_relationships FR
LEFT JOIN users U1 ON U1.id = user_id1
LEFT JOIN users U2 ON U2.id = user_id2
WHERE (user_id1 = :id OR user_id1 = :id) AND status = :1 '
try{
$dox = $db->prepare($sql);
$dox->bindValue(':id',$id,PDO::PARAM_INT);
$dox->bindValue(':1','1',PDO::PARAM_STR);
$dox->execute();
//on stocke le resultat dans un array
$result = $dox->fetchAll();
}catch(Exception $e){
echo "Erreur dans la requête " .$sql;
echo "<br>".$e->getMessage();
}
if(!empty($result)){
//on boucle sur le resultat
foreach($result as $R){
echo "<img src='". $R['avatar2'] ? $R['avatar2'] : get_avatar_url($R['email2']) ."'
class='avatar-xs' style='width: 50px; height: 50px;'
alt='avatar'>";
echo htmlspecialchars(trim($R['pseudo2']));
}
}else{
// si le user n'a pas dami on lui affiche une echo...
echo "Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez";
}
?>
Cordialement,
Jordane
Merci bcp pour votre aide ce toujours pas resolu je trouve vraiment pas l'erreur est dû a quoi voici l'erreur en question
Notice: Undefined variable: id in C:\xampp\htdocs\friendme\friends\friends_count.php on line 20
Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez
la line 20 en question
quand je mi genre
Notice: Undefined variable: id in C:\xampp\htdocs\friendme\friends\friends_count.php on line 20
Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez
la line 20 en question
$dox->bindValue(':id' ,$id,PDO::PARAM_INT);
quand je mi genre
$id = "" ;l'erreur s'affiche pas mais le
echo "Vous n'avez pas d'ami(es) pour l'instat merci dans ajoutez";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question