Affichage de photo avec id
- Accueil
- Forum
- Programmation
- PHP
- Affichage de photo avec id
ets_raphael Le 19 juin 2017 à 01:08 (Édité le 25 janvier 2019 à 17:53)
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 😀
ThomasT Le 19 juin 2017 à 21:01 (Édité le 1 janvier 1970 à 01:00)
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é 😉 ets_raphael Le 20 juin 2017 à 07:46 (Édité le 1 janvier 1970 à 01:00)
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 Le 20 juin 2017 à 08:12 (Édité le 1 janvier 1970 à 01:00)
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']).'">';
Zbuu Le 24 juin 2017 à 07:38 (Édité le 1 janvier 1970 à 01:00)
$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 😀