Bonjour à tous
Je suis le tuto créé un site de A à Z jour 6 Dans la fonction find() je veux réaliser la jointure de deux tables posts et medias afin d’afficher les images sur ma page front office mais le problème est que je n’arrive pas à réaliser la requête que je souhaite avoir au finish.
Je veux avoir la requête suivante
SELECT posts.id, posts.name, post.content, medias.name as image_name
FROM posts
LEFT JOIN medias ON medias.id = posts.image_id
Voici la fonction find
public function find($req){
$sql = 'SELECT ';
if(isset($req['fields'])){
if(is_array($req['fields'])){
$sql .= implode(', ', $req['fields']);
}else{
$sql .=$req['fields'];
}
}else{
$sql.='*';
}
$sql .=' FROM '.$this->table.' as '.get_class($this).' ';
// Construction de la condition
if(isset($req['conditions'])){
$sql .= 'WHERE ';
if(!is_array($req['conditions'])){
$sql .= $req['conditions'];
}else{
$cond = array();
foreach($req['conditions'] as $k=>$v){
if(!is_numeric($v)){
$v = '"'.addslashes($v).'"';
}
$cond[] = "$k=$v";
}
$sql .= implode(' AND ',$cond);
}
}
//die($sql);
$pre = $this->db->prepare($sql);
$pre->execute();
return $pre->fetchAll(PDO::FETCH_OBJ);
}
Aider moi SVP je n’arrive pas à m’en sortir tout seul
Merci.
Bonsoir.
Tu ne peux pas faire cette requête SQL avec la fonction que tu montres ci-dessus car elle ne prévoit pas les jointures entre tables.
Il te faut donc la modifier pour que si par exemple dans la requête l'index join
existe, ajouter les liaisons nécessaires.
Bonjour,
Merci mais ce que je veux c'est d'afficher sur ma vue index les images de la table medias dont le post_id correspond à l'ID du post; par une seule boucle foreach.
Comment dois-je alors joindre le deux tables dans ce système MVC ?
Merci encore
Je ne me rappelle plus dans quel chapitre il montre comment faire le code pour les jointures, mais il est présent dans la méthode find
dans les sources du tutoriel.
Ou alors, il l'a ajouté après la fin du tutoriel et tu ne dois pas être premium pour pouvoir en télécharger les sources.
je peux avoir le lien directe tes sources du tutoriel en question SVP?
Elles ne sont disponibles que via le site et il faut être Premium pour pouvoir les télécharger.
Je ne vais pas t'en donner une copie sinon le système de Premium n'aurait plus aucun intérêt (je ne veux pas dire pour les utilisateurs, mais pour Grafikart, bien que certains ne trouveraient pas, et c'est compréhensible, que certains autres utilisateurs aient pu avoir des sources de tutoriels gratuitement qui ne sont censé être accessibles que par un membre Premium, alors qu'eux ont du payer un abonnement Premium pour les avoirs).
[... et tu ne dois pas être premium pour pouvoir en télécharger les sources.]()
Vous avez totalement raison mon frère Merci sauf que je me suis base sur ce que vous m’aviez dit croyant que c’été libre. Merci encore
sauf que je me suis base sur ce que vous m’aviez dit croyant que c’été libre
Le fait de parler du tutoriel ne change rien au fait que les source de certains tutoriels ne sont accessibles que via un abonnement Premium, si Grafikart ne voulait pas qu'une aide soit apporté concernant les tutoriels dont les sources sont restrinctes, il ne laisserait pas la visualisation de leurs vidéos publiquement mais seulement pour les membres Premium, ce qui n'est bien sûr pas le cas.
Par contre, donner les sources d'un tutoriel pour lesquelles elles ne sont accessibles que par des membres Premium à quelqu'un qui ne l'est pas, serait injuste envers les autres qui paient un abonnement pour y accéder.