Afficher les articles par categorie

Résolu
kouakouk Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 kouakouk -
Bonsoir, je suis un débutant en php et je souhaite avoir un peu d'aide de votre part.
mon problème se situe a deux niveaux:
1-je veux afficher les articles par categorie dans une page
exemple j'ai la liste des categorie = MOBILE et lorsque je clic sur une CATEGORIE il doit m'afficher sur une autre page tous les article specifique a cette categorie = MOBILE.

2-je veux affiche dans un menu deroulant les categorie et sous-categories
exemple (categorie=MOBILE et sous-menu=nokia, samsung

Merci de m'aider et merci d'avance

3 réponses

adrienmarty Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   3
 
Voilà un bon début.

index.php : Page qui affiche les catégories et les sous catégorie qui sont dedans.

<?php

// Connecte toi à ta BDD ici
$req=mysql_query("SELECT id,nom_categorie,description_categorie FROM categories");

while($data = mysql_fetch_array($req))
{
$id_categorie=$data['id'];
$req2=mysql_query("SELECT id,id_categorie,libelle FROM sous_categorie WHERE id_categorie='$id_categorie'");

echo "<strong>" . $data['nom_categorie'] . "</strong></br></br>";
while($data2=mysql_fetch_array($req2))
{
// ici tu ajoute ce que tu veux sur les sous catégories.
echo "<a href='sous_categoriedisplay.php?id=" . $data2['id'] . "'>" . $data2['libelle'] . "</a></br>";
}

}
?>


sous_categoriedisplay.php : Page qui affiche la liste des articles appartenant à la sous catégorie dont l'id est précisé dans l'url (sous_categoriedisplay.php?id=1)

<?php

//Connecte toi à ta BDD ici
$id=mysql_real_escape_string($_GET['id']);
$req=mysql_query("SELECT id,id_categorie,id_souscat,titre,description,auteur,source,image,date FROM article WHERE id_souscat='$id'");

while($data = mysql_fetch_array($req))
{
$id2=$data['id'];
echo "<a href='articledisplay.php?id=" . $id2 . "'>" . $data['titre'] . "</a></br>";
}

?>


articledisplay.php : Page qui affiche l'article selectionné

<?php

//Connection BDD ! :)

$id=mysql_real_escape_string($_GET['id']);
$req=mysql_fetch_array(mysql_query("SELECT id,id_categorie,id_souscat,titre,description,auteur,source,image,date FROM article WHERE id='$id'"));

// ici affiche ton article avec $req['id'] pour l'id par exemple

?>


J'espère que cela va t'aider même si je viens de me rendre compte que ca sert à rien de te filer un code que tu ne comprend pas.

Aussi pour tes id_categorie et id_souscat met le plustôt en int que en chaine de caractère.

Pour le menu déroulant je ne sais pas faire mais je ne pense pas c'est important.

Je ne l'ai pas testé donc il y a surement des erreurs.

Si tu as des questions n'hésite pas :)
1
adrienmarty Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   3
 
A tu une base de donné type MySQL ou PostgreSQL ?
0
kouakouk
 
bonjour, j'ai une base de donnees type mySQL

CREATE TABLE 'categories' (
'id' int(11) NOT NULL auto_increment,
'nom_categorie' text character set utf8 collate utf8_unicode_ci NOT NULL,
'description_categorie' text character set utf8 NOT NULL,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--------------------------
CREATE TABLE 'sous_categories' (
'id' int(11) NOT NULL auto_increment,
'id_categorie' varchar(255) character set utf8 NOT NULL,
'libelle' text collate latin1_general_ci NOT NULL,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-------------------------------

CREATE TABLE 'articles' (
'id' int(11) NOT NULL auto_increment,
'id_categorie' varchar(255) character set utf8 NOT NULL,
'id_souscat' varchar(255) character set utf8 NOT NULL,
'titre' text character set utf8 collate utf8_unicode_ci NOT NULL,
'description' longtext character set utf8 collate utf8_unicode_ci NOT NULL,
'auteur' varchar(255) character set utf8 NOT NULL,
'source' varchar(255) character set utf8 NOT NULL,
'image' varchar(255) collate latin1_general_ci NOT NULL,
'date' varchar(30) collate latin1_general_ci NOT NULL,
PRIMARY KEY ('id')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

MERCI POUR L'AIDE
0
kouakouk
 
merci pour ce code je test voir
0