Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: ets_raphael
Auteur Sujet: Affichage de photo avec id

ets_raphael

Messages: 6

Bonjour, 

J'avais un petit souci pour relier 2 tables, je voulais savoir si ma manipulation était la bonne.. Pour faire  simple je voudrais juste que la photo de la personne qui poste se retrouverais juste a coté de sont article, je vous poste ce que je devrais arranger ( du moins je pense ) pour que ca marche. 

On retrouve l'id dans ma table de membre, et id_utilisateur dans ma table articles (qui est exactement le même id que celui dans ma table membre)
$avatar_article = $bdd->query('SELECT DISTINCT avatar FROM membres, articles  WHERE id = id_utilisateur');
Par la suite pour l'afficher voici ma commande : 
<img src="membres/avatars/<?php echo $avatar_article;?>" >

Je pense que l'erreur ce situe dans ma requête mais encore la je suis pas sûre, merci a ceux qui m'aideront Sourire 
Publicité

ThomasT

Messages: 8

Hey

Wow tu as sauté pas mal de tuto php dis moi ?

après ton query il faut afficher tes données
ou ta donnée
par exemple si tu n'as qu'un resultat fait un simple fetch comme ceci :

$data = $avatar_article->fetch();
puis ensuite pour l'image tu fais :
<img src="membres/avatars/<?php echo $data['avatar'];?>" >

Pour ta partie sql (query) je te conseil de faire une simple requête :
$avatar_article = $bdd->prepare('SELECT id, avatar FROM membres WHERE id = ?');
$avatar_article->execute(array($lefameuxID));
//puis pour afficher :
$data = $avatar_article->fetch(); //fetch = mise en tableau des résultats (array)

<img src="membres/avatars/<?php echo $data['avatar'];?>" > //puis tu affiches

J’espère t'avoir aidé Clin d'oeil

ets_raphael

Messages: 6

Merci a toi mais ca coince toujours :x 

Je ne comprends pas comment t'as première requête peut me récupérer l'avatar de cette personne qui poste sont article. Parce que c'est la l'utilité de mon id_utilisateur qui est identique a l'id qui pourrait me récupérer tout ca ( tu me diras si je me trompe ). C'est pour ca que je voulais inscrire dans ma requête qu'il faut que  id_utilisateur = id. Alors que dans le tiens ce que je comprends c'est que tu ne fais a aucun moment la relation :/ 



ThomasT

Messages: 8

annnh j'ai compris ce que tu veux Tire la langue

Déjà mettons les choses au clair : "L'option DISTINCT permet d'éliminer les doublons c'est-à-dire de ne pas les prendre en compte pendant la sélection"

là je te conseil de créer une fonction qui récupère l'avatar de la personne comme ceci :
function avatar($id_user)
{
   global $bdd; //pour inclure la bdd dans la fonction
   $query = $bdd->prepare('SELECT id, avatar FROM membres WHERE id = ?');
   $query ->execute(array($id_user));

if($query->rowCount() == 0)
{
 return FALSE; // on retourne une erreur si aucun résultat n'est retourné
} else {
   $data = $query->fetch();
   return $data['avatar']; // on retourne le valeur avatar de la base de données
}
}
Pour utiliser ta fonction tu feras ceci dans la variable qui a les données d'un de tes posts :
echo avatar($post['owner']); //$post['owner'] est l'id de l'utilisateur, $post est le résultat d'un $requete->fetch()
si tu veux mettre en forme un peu tout ça tu peux :
echo '<img src="'.avatar($post['owner']).'">';

thiernosow

Messages: 1

erreur

Zbuu

Messages: 118

Tu peux utilisé un left join dans ta requête : 
$q = $bdd->prepare("SELECT a.id, a.title, a.content, m.avatar FROM articles AS a LEFT JOIN membres AS m ON m.id = a.id_utilisateur WHERE a.id = :id_article");
$q->execute([':id_article' => $id_article]);
$articles = $q->fetch();
Bien entendu c'est à toi de mettre les bons champs et changé la variable :)
Tu devrais t'en sortir, mais si vraiment tu coinces alors donne nous le champs de tes table et montre nous ton code Sourire 


Veuillez vous connecter ou créer un compte pour poster une réponse