Afficher les articles par categorie

[Résolu/Fermé]
Signaler
Messages postés
3
Date d'inscription
mardi 20 août 2013
Statut
Membre
Dernière intervention
10 septembre 2013
-
 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

Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
3
A tu une base de donné type MySQL ou PostgreSQL ?
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
merci pour ce code je test voir