jointure mysql

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

zimounet
WRInaute accro
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

jointure mysql

Message le Dim Oct 23, 2005 23:50

Hello, voila j'ai besoin d'aide avec un select sur plusieurs table, tout est expliqué en commentaires


Code: Tout sélectionner
//connexion db
$num_article = $_GET['article']; //ici je récupère l'id de mon article

//La je fait un select pour récupérer les divers infos sur ma table articles
$resultat = mysql_query("SELECT cat,titre,auteur,date,heure,contenu,forum FROM articles where id='$num_article'");

//Je met l'ensemble dans des variables...
$titre = mysql_result($resultat,'.$num_article.',"titre");
$auteur = mysql_result($resultat,'.$num_article.',"auteur");
$date = mysql_result($resultat,'.$num_article.',"date");
$heure = mysql_result($resultat,'.$num_article.',"heure");
$contenu = mysql_result($resultat,'.$num_article.',"contenu");
$forum = mysql_result($resultat,'.$num_article.',"forum");
$cat = //mais je veux que cette variable contienne le nom de ma catégorie, qui est stocké dans la table cat. Et si je fait sa: $cat = mysql_result($resultat,'.$num_article.',"cat"); je n'ai évidement que l'id de la catégorie, présent dans le champs cat de ma table articles, qui correspond a l'id de ma table cat... evidement...

Comment avoir le resultat voulu avec un seul requete?

yBicou
Nouveau WRInaute
 
Messages: 7
Inscription: Sam Juil 31, 2004 1:38

Message le Lun Oct 24, 2005 1:55

Déjà jamais envoyer des données provenant de $_GET, $_POST ou tout autre tableau provenant du browser directement dans une requête sql sans le vérifier ou modifier :

Code: Tout sélectionner
// faire un isset($_GET['article']) avant et réagir à ce cas
$num_article = $_GET['article']+0;

$sql = "SELECT articles.*, cat.title AS cat_title FROM articles LEFT JOIN cat ON articles.cat = cat.id WHERE articles.id='$num_article'";
$res = mysql_query( $sql );
if( $res )
{
    if( mysql_num_rows( $res ) )
    {
        $article = myslq_fetch_assoc( $res );
        echo $article['titre'],' dans la catégorie : ',$article['cat_title'];
    }
}


Bon courage !

zimounet
WRInaute accro
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

Message le Lun Oct 24, 2005 2:30

ybicou, je n'ai juste mis que l'extrait de code qui interresse, mais merci de faire la remarque par sécurité!

Sinon, je ne veux pas lister les articles, mais juste afficher un seul article, pour ce dernier sa catégorie etc...

donc comment faire, a partir de ta requete pour ne travailler et n'afficher que sur un enregistrement de ma bdd? (je n'ai pas besoin de mettre sa dans un tableau)

zimounet
WRInaute accro
WRInaute accro
 
Messages: 1796
Inscription: Lun Nov 08, 2004 20:57

Message le Lun Oct 24, 2005 2:35

Pour l'instant, j'ai fait ceci, est ce que sa va ou est-ce moins performant que de faire qu'un seul requete?

Code: Tout sélectionner

<?
//connexion Bdd
$num_article = $_GET['article'];
if (isset($_GET['article']))
{header("Location: index.php");}
$resultat = mysql_query("SELECT cat,titre,auteur,date,heure,contenu,forum from articles where id='$num_article'");
$cat = mysql_result($resultat,'.$num_article.',"cat");

$rescat = mysql_query("SELECT cat from cat_articles where id='$cat'");

$categorie = mysql_result($rescat,'.$num_article.',"cat");
$titre = mysql_result($resultat,'.$num_article.',"titre");
$auteur = mysql_result($resultat,'.$num_article.',"auteur");
$date = mysql_result($resultat,'.$num_article.',"date");
$heure = mysql_result($resultat,'.$num_article.',"heure");
$contenu = mysql_result($resultat,'.$num_article.',"contenu");
$forum = mysql_result($resultat,'.$num_article.',"forum");
?>



ltressens
WRInaute passionné
WRInaute passionné
 
Messages: 551
Inscription: Ven Avr 02, 2004 14:52

Message le Lun Oct 24, 2005 7:48

Qqchose comme :

SELECT c.cat, a.titre, a.auteur, a.date, a.heure, a.contenu, a.forum from articles a, cat_articles c
where a.id='$num_article'
and a.cat = c.id;


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités