PHP - MySQL Requete entre deux tables

Fermé
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 - 27 août 2008 à 22:56
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 - 28 août 2008 à 21:48
Bonjour,

Je cherche, je cherche mais je capte pas!!

J'aimerais afficher sur une page le résultat entre deux tables Mysql, mais je capte aps trop si ce que je fais est bon ou pas!

j'ai deux tables :
l'une affiche les textes avec le nom de leur auteur
l'autre affiche les commentaire à ce texte avec le nom de la personne qui a posté ce message.

(genre blog)

Ce que j'aimerais faire est en une page afficher le résultat de deux tables (mais je ne sais pas si c'est possible)! Donc selectionner de l apremière table le texte (et l'afficher) et de la deuxième table les réponse ou commentaires à ce texte. Voici ce que je tente:
<?php

$id = $_GET['blog'];
$sql = "SELECT * FROM tbl_blog AS blog, tbl_blogpost AS reply WHERE blog.idblog = reply.idblog AND blog.idblog = '".$id."' ORDER BY reply.date ASC;";
	$query = mysql_query($sql) or die( 'Erreur'.mysql_error() );
	$row = mysql_fetch_array( $query );
	echo $query."<br>";
	echo $sql."<br>";

	echo $row['blog.auteur'];
mysql_close();
?>

est-ce correct?
A voir également:

6 réponses

basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
28 août 2008 à 09:40
Salut,
As-tu testé ta requête afin de voir ce qu'elle te renvoit..?
Ne faudrait-il pas faire une jointure entre les deux tables..?
Ce sont de simples propositions.
@+
0
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 56
28 août 2008 à 19:26
quand je tourne ce code, cela ne m'affiche que les deux premier echo! C'est normal, c'est un simple echo de la requète.

quand j'enlève blog.auteur et que je le remplace simplement par auteur et ainsi de suite pour les résultats de la première table, cela fonctionne, mais pas d'affichage pour le deuxième table...

Il me semble bien que je doit faire un join, mais c'est là que je calle?? est ce un INNER JOIN?
0
Pour faire une jointure :

" SELECT *
FROM tbl_blog AS blog
INNER JOIN tbl_blogpost AS reply USING (idblog)
WHERE blog.idblog = '".$id."'
ORDER BY reply.date ASC;";
0
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 56
28 août 2008 à 19:45
MErci!

et pour l'affichage,

ceci est il correct? (c'est un affichage test hein)

echo $row['blog.auteur'];
echo $row['reply.commentaire'];
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 56
28 août 2008 à 20:01
Je ne peux plus éditer... Pas grave...

Avec ceci j'ai encore une question! De ces deux tables, le but est que l'une comporte tout les textes posté par les utilisateur ayant une permission d'en ajouter et l'autre table les réponses aux textes ou messages (genre Blog)

Ce qui fait que j'ai une table:
idblog
auteur
email
titre
quand
photo
texte

et la deuxième:
idrep
idblog
auteur
email
quand
texte

comme vous pouvez constater, j'ai des champs qui portent le même nom... Alors ma question était si ceci est autorisé?
0
zevinny Messages postés 164 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 13 février 2010 56
28 août 2008 à 21:48
Personne n'a d'idiées à ce propos?
0