Mysql Php, création modèle base de donnée pour menu Dynamique

GEEK44D - 10 mars 2013 à 10:30
 GEEK44D - 10 mars 2013 à 23:18
Bonjour,

En Mysql et Php j'aimerais créer un script et plusieurs Tables qui remplaceraient la Table ci-dessous.

Cette Table crée un menu dynamique chaque parent 0 est un Entête de Menu et les relations sous menu, menu inférieur son définies grâce aux relations Parent ID.

Mon problème c'est que j'aimerais automatiser la création de nouvelles entrées dans le menu, pour l'instant je n'arrive à le faire que manuellement.

ID Parent Nom
1 0 Félins
2 1 Grands Félins
3 2 Panthères
4 2 Lions
5 1 Petits Félins
6 2 Tigres
7 0 Poissons
8 0 Canins
9 8 Saumons
10 8 Requins
11 9 Loups
12 9 Chiens

Merci d'avance pour votre aide.

8 réponses

cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
10 mars 2013 à 15:03
Salut, pourquoi plusieurs table si tout peut tenir dans une seul ?

Si tu as compris la logique pour insérer les données manuellement, essaye de le faire en php, c'est la même méthode. Tu dois uniquement récupérer l'id parent pour un nouveau insert d'un enfant.

stéph
0
Merci Stay,

Mais l'intérêt d'avoir plusieurs tables est d'avoir une architecture plus claire et structurée.

On pourrait avoir une table Menu, une table Rubrique et une Sous Rubrique avec des liaisons Parent, Enfant. Je l'ai déjà fait avec un UNION sur les tables, ça fonctionne presque, il faut que j'ajoute une colonne ID au résultat.

A+
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
10 mars 2013 à 18:00
Dans mon poste précédent, j'ai dis que tu connais la logique. Si je t'ai posé la question au sujet des tables c'est uniquement pour voir ce que tu avais en tête.
Tu n'as besoin de personne pour la logique donc la création de ce topique à été inutile. Tu donnes les réponses à tes propres pseudo problèmes.

Commence ton développement et revient si tu as un réel soucis.

stéph
0
Merci Stay,

T'es gentil, mais j'ai un réel soucis, si tu pouvais m'indiquer le Script Sql pour récupérer tous les éléments dans une colonne ID, ce serait sympa, car c'est notamment là que je bloque.

Par ailleurs je débute en Php Mysql alors l'intérêt du Forum c'est de pouvoir échanger des idées sur la meilleure façon de faire, je ne m'y prends peut être pas de la bonne façon.

A+
0

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

Posez votre question
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
10 mars 2013 à 18:30
Oui, tu t'y es pris de la mauvaise façon.
Mais heureusement ;) je pose les bonnes questions.

Ici, je ne suis pas chez moi et je répond par GSM.
Je te propose de lire la doc sur PDO.
Demain, je te promet de revenir vers toi et on mettra quelque chose en place. Par rapport à tes compétences.

stéph
0
Merci Steph,

Effectivement je connais un peu PDO, j'ai déjà un script PHP qui fonctionne avec, notamment pour la connexion et l'affichage des données.

Pour le reste j'ai encore du boulot.

Merci pour ton aide.

A Demain.
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
10 mars 2013 à 18:37
Super, aucun problème, ça sera très simple.

stéph
0
Stéph ci-dessous le code de ma page :

C'est une adaptation d'un code Html, dis moi ce que t'en pense.

A+

<?php require_once('../Connections/ConnexionMysqlMenuPDO.php'); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>jQuery Superfish dropdown menu with php and Mysql</title>
<link rel="stylesheet" href="css/superfish.css" media="screen">
<script src="js/jquery-1.9.0.min.js"></script>
<script src="js/hoverIntent.js"></script>
<script src="js/superfish.js"></script>
<script>

// initialise plugins
jQuery(function(){
jQuery('#example').superfish({
//useClick: true
});
});

</script>
</head>

<?php
// Récupération des données
try {
// On envois la requète
$select = $connection->query("SELECT ID, Parent, Nom FROM Menu ORDER BY Nom ASC");

?>


<?php

$categories = array();

while($row = $select->fetch(PDO::FETCH_ASSOC) ) {
$categories[] = array(
'parent_id' => $row['Parent'],
'categorie_id' => $row['ID'],
'nom_categorie' => $row['Nom']
);
}

function afficher_menu($parent, $niveau, $array) {

$html = "";
$niveau_precedent = 0;

if (!$niveau && !$niveau_precedent) $html .= "\n\n";

foreach ($array AS $noeud) {

if ($parent == $noeud['parent_id']) {

if ($niveau_precedent < $niveau) $html .= "\n\n";

$html .= "<li>" . $noeud['nom_categorie'] . "";

$niveau_precedent = $niveau;

$html .= afficher_menu($noeud['categorie_id'], ($niveau + 1), $array);

}
}

if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "\n</li>\n";
else if ($niveau_precedent == $niveau) $html .= "\n";
else $html .= "</li>\n";

return $html;

}
?>

<?php } catch ( Exception $e ) {
echo "Une erreur est survenue lors de la récupération des Données";
}
?>

<?php

echo afficher_menu(0, 0, $categories);
?>


</html>
0
Rejoignez-nous