Comment gérer les choix d'un menu

Répondre
coringan
le 18/02/2010 à 20:10
coringan
Je ne sais pas si mon problème (PHP) sort de l’ordinaire, mais je suppose ne pas être le premier à y être confronté.

J’ai le sous-menu suivant

<?php 
<li><a class="qmparent" href="#"><span style="cursor: text;">Forums</span></a>
<ul>
<li><a href="Forums.php">Affaires</a></li>
<li><a href="#">Amitié</a></li>
<li><a href="#">Santé</a></li>
<li><a href="#">Sexualité</a></li>
<li><a href="#">Société</a></li>
<li><a href="#">Sport</a></li>
</ul>
</li>
?>


Comme vous pouvez le constater, seul le sujet change tandis que le traitement reste exactement le même.

Ma question est de savoir comment éviter d’avoir autant de pages que de choix du menu.
Est-ce que je peux avoir une seule page (Forums.php) de traitement pour toutes les entrées du menu mais gérée par une seule variable ?
Exemple
$forum qui deviendra affaires si je clique sur affaires
$forum qui deviendra amitié si je clique sur amitié
Je fais ce qui me plaît, et ce que je fais me plaît !
Keika
le 19/02/2010 à 05:03
Keika
fastoche !

il faut que tu envois par url l'ID du forum que tu veux voir.
ex: forum amitie => ID = 1
dans ton url: www.monsite.com/forum.php?id=1
dans ta pas forum.php:
tu fait une requete qui va chercher les infos relatives a ce forum, du genre:
SELECT id, forum, messages, reponses FROM forum WHERE forum = "1" ;

Tu adaptes a ta base de donnee, et voila le travail.
Le PHP --> C'est dur !
coringan
le 19/02/2010 à 06:27
coringan
Le site n’est pas encore publié et à mon avis ton opération sera difficile.

Je voudrais avoir ceci

<?php 
<li><a class="qmparent" href="#"><span style="cursor: text;">Forums</span></a>
<ul>
<li><a href="Forums.php">Affaires</a></li>
<li><a href="Forums.php">Amitié</a></li>
<li><a href="Forums.php">Santé</a></li>
<li><a href="Forums.php">Sexualité</a></li>
<li><a href="Forums.php">Société</a></li>
<li><a href="Forums.php">Sport</a></li>
</ul>
</li>
?>


Avec une seule variable qui prendra la valeur du menu choisi.
Exp : if (je clique sur un des liens ci haut) $Forum = "Affaires" ou Amitié ou Santé ou Sexualité ou autre selon mon choix.

Je pourrais bien le faire avec autant de cookies dans les pages de transition mais ce sera aussi lait qu’hasardeux et moi je n’aime pas les devinettes.
Je fais ce qui me plaît, et ce que je fais me plaît !
moogli
le 19/02/2010 à 10:49
moogli
salut,

tu ne peut pas le faire sans passer un paramètre (comme dans l'exemple de Keika). Tu ne le vois pas mais c'est le cas ici.

Si tu suis le comment faire un forum du site, il te faut ajouter un table forum, et modifier la table des sujets puor savoir a quel forum le sujet appartient.

au passage pas besoin des balise php dans code la hein, mais avec la gestion des forum tu en aura besoin pour nourrir dynamiquement ton menu ;)

par exemple :
j'utilise une table forum faite ainsi
create table forums (
id_forum int unsigne not null autoincrement,
nom varchar(100) not null,
visible enum('false','true') default 'false',
primary key(id_forum)
)type=myisam;
<?php
//la connection au serveur MySQL tu te débrouille ;)
$requete = 'SELECT id_forum, nom FROM forums where visible=\'true\'';
$ret = mysql_query($requete);
if ( $ret === false ) {
echo '<p class="erreur">Erreur SQL : '.$requete.'<br />'.mysql_error().'</p>';
}
else {
echo '<ul>';
while ($data = mysql_fetch_assoc($ret)) {
echo '<li><a href="forum.php?forum='.$data['id_forum'].'" alt="Forum : '.$data['nom'].'">'.$data['nom'].'</a></li>';
}
echo '</ul>';
mysql_free_result($ret);
}
?>


ceci n'est qu'un exemple, qui te permet de créer ton menu sans tenir compte du nombre de forum ;)

A ne pas utilisé comme ça parce que pas testé et que je ne connais pas ton forum :)

@+
Il en faut peu pour être heureux !!!!!
coringan
le 19/02/2010 à 19:42
coringan
Salut Moogli,

Ce n’est pas la première fois que tu me sors d’un sacré pétrin, je crois que ce n’est sûrement pas la dernière. Les forums sont faits pour des gens comme toi.
J’ai fait un copier/coller de ta démarche qui a résolu deux aspects majeurs de mon problème.
- Faire un menu avec le code PHP que tu as fait (ce qui n’était pas le cas et ce auquel je n’y ai d'ailleurs pas pensé)
- Faire un $_GET ($id=$_GET['forum'];) qui me permettra d’effectuer de bonnes requêtes (c’était en fait mon problème).
Pour le moment ça marche.
Le moins que je puisse te dire c’est un GRAND MERCI Moogli.

@+
Je fais ce qui me plaît, et ce que je fais me plaît !
coringan
le 19/02/2010 à 19:50
coringan
Au fait j’ai enlevé le champ visible enum('false','true') default 'false' ainsi que la clause where visible=\'true\'
J’espère que les 2 ne me serviront pas.
Pourrais-tu m’expliquer pourquoi j’en aurais besoin ici ?
Je fais ce qui me plaît, et ce que je fais me plaît !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours