Aller au contenu

gestion de sous categorie aà l'infini


ayendail

Sujets conseillés

ceci est un brouillon de script sur lequel je travaille.

le but est de créer dans la base de donnes les noms des catégories et leur adresse physique pour cela je créé en même temps une entrée dans la bdd et un dossier.

voici la table

CREATE TABLE IF NOT EXISTS `categorie_thesaurus` (
`id` int(11) NOT NULL auto_increment,
`Cat_mere` int(11) NOT NULL,
`Nom` varchar(255) NOT NULL,
`Description` text NOT NULL,
`Chemin` text NOT NULL,
`valide` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

voici le script:

<?php

//ici j inclue les codes d acces a la bdd
require_once "./configuration.php";

//je verifie si il y a eu un post

if(isset($_POST['nom']) && isset($_POST['description'])) {

//ici je me connecte a la bd

mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
//je recupere le nom de la sous-categorie choisie

$nom = mysql_real_escape_string($_POST['nom']);

//je recupere la description de la sous categorie

$description = htmlentities($_POST['description']);

//ici je recupere l id de la categorie mere et l id de la categorie dans le cas ou c est pour une sous sous categorie ou une sous² categorie

$selec = htmlentities($_POST['selection']);


$result1 = mysql_query('SELECT * FROM categorie_thesaurus Where id ='.$selec);
if($data1 = mysql_fetch_assoc($result1)) {
$id = $data1['id'];
$sel = $data1['Cat_mere'];
$select = $data1['Nom'];
}

//ici je recupere le chemin du dossier de la categorie

$result2 = mysql_query('SELECT * FROM categorie_thesaurus Where id ='.$sel);
if($data2 = mysql_fetch_assoc($result2)) {
$dossier = $data2['Chemin'];
}

//ici j'enleve le nombre de caractyere que presente l adresse du site pour creer le dossier a la racine

$str = 'http://www.ayendail.com/';
$doss = strlen($str);
$adresse = substr($dossier, $doss);
//ici c est la recuperation de l acces au dossier pour la bdd

$chemin = $dossier."/".$select."/".$_POST['nom'];
mysql_query('
INSERT INTO categorie_thesaurus (cat_mere ,Nom ,Description ,Chemin)
VALUES ("'.$id.'" ,"'.$nom.'" , "'.$description.'" , "'.$chemin.'") ') or die(mysql_error());

ici c est la creation du dossier a la creation

mkdir("../".$adresse."/".$select."/".$_POST['nom'], 0777);

echo 'Votre Sous-Catégorie à bien été céé';
echo '<br><a href="thesaurus.php"><<<<< Poursuivre >>>>></a>';
}

else {

?>

/*le formulaire de la demande de création de la categorie */

<div align="center">

<h1>Ajouter une sous-catégorie au thesaurus</h1>

<a href="thesaurus.php"><<<<< Revenir >>>>></a>

<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">

<input type="hidden" name="action" value="ajoutsoussouscat">

<label>Choisissez la catégorie ou ajouter la sous-catégorie:

/*ici je met la liste des sous categories ou ajouter la sous categorie */

<select name="selection" id="selection">
<?php
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
$result = mysql_query('SELECT * FROM categorie_thesaurus WHERE Cat_mere > 0 ORDER BY Nom ASC');
while($data = mysql_fetch_assoc($result)) {

echo '<option value="'.$data['id'].'">'.$data['Nom'].'</option>';
}
?>

</select></label><br>
/* ici je met le nom de la sous categorie voulu */

<label>Nom de la sous-catégorie :
<input type="text" maxlength="100" value="" name="nom" id="nom" size="50">
</label><br><br>
<label>Description de la sous-catégorie : <br>
<textarea name="description" value="" id="description" rows="10" cols="50"></textarea>
</label><br>
<input type="Submit" value="Soumettre">
</form>
</div>
<?php
}
?>

voici ma question est il mieux de mettre tous les codes sur une seul page ajout/creation/suppression/moderation ou faire une librairie de fonction?

est quell est votre avis sur la pertinence du script (je suis autodidacte je commence juste a pouvoir construire mes propres scripts.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Si c'est juste la requête sql qui change suivant le type d'opération (ajout/suppression/modification/...) il vaut mieux utiliser le même code et ne faire qu'une page qui reçoit en paramètre le type d'opération.

En fonction du type d'opération tu exécutes la requête sql qui va bien en utilisant la fonction switch par exemple.

Lien vers le commentaire
Partager sur d’autres sites

voila a quoi j arrives et ce que je veux simplifier pour y acceder...

CREATE TABLE IF NOT EXISTS `categorie_thesaurus` (
`id` int(11) NOT NULL auto_increment,
`Cat_mere` int(11) NOT NULL,
`Nom` varchar(255) NOT NULL,
`Description` text NOT NULL,
`Chemin` text NOT NULL,
`valide` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=18;

--

-- Contenu de la table `categorie_thesaurus`


I
(6, 0, 'Sciences Naturelles', 'Les sciences naturelles ont pour objet l\\''étude du monde naturel, il s\\''agit des sciences de la nature associées à l\\''environnement biophysique. Leur équivalent anglophone est natural sciences. Associées à l\\''environnement humain, elles s\\''opposent traditionnellement aux sciences humaines.', '/thesaurus/Sciences Naturelles', 0),
(7, 6, 'Biologie', 'La biologie, appelée couramment la « bio », est la science du vivant. Prise au sens large de science du vivant, elle recouvre une partie des sciences naturelles et de l''histoire naturelle des êtres vivants (ou ayant vécu). Toutefois la distinction entre organismes vivants et non vivants est parfois difficile et la détermination de l''objet spécifique de la biologie n''a rien d''évident.', /thesaurus/Sciences Naturelles/Biologie', 0),

soit 6.0 la categorie

7,6 la sous categorie (ca donne 8,6 ....9,6

le 6 etant l identite de la categorie

ensuite le chemin d acces est le site/thesaurus/categorie/sous categorie/et autant qu on veu

avoir la mise en page pour le site et mettre une url en dure pour acceder a l article. securiser du fait que tout se passe sur le serveur.

soit ca fait juste appeler l id de la categorie puis les sous catgories ayant comme cat mere celle ci. puis au lieu de faire un acces a la bdd mettre l url de l article en dur.

soit l article sera efficient en chom juste lecture. je pense que c est assez securitaire.

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

voila une mise en page. la mise en page.

j ai pas encore fait de css. j hesite entre un css fixe ou personalisable. mais tout est pour le css fixe car une fois dans le cache il n y a plus a le changer.

la mise en page que vous voyer va etre celle du site. en haut il y aura une barre de 50px de hauteur avec retour a lindex et rechercher.

Modifié par ayendail
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...