8791 sujets

Développement web côté serveur, CMS

Bon voila ma base, elle est composé de 2 tables, une catégories et une subcat
http://images.imagehotel.net/3rnqftt8dv.jpg
Dans la deuxieme table les idcat 1 et 2 coresspondent au id de la premiere table. Je veux liée la catégorie avec l'id 1 , avec tous les idcat 1 de la deuxieme table.
.
Voila ensuite j'ai faits ma première liste déroulante a partir de catégorie qui se remplie grace a la base:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("thermoterme");
//mysql_close();

$query=mysql_query("SELECT * FROM categories ORDER BY id");
$row=mysql_fetch_array($query);
$numRows=mysql_num_rows($query);
?>

et dans le body
<h3 class="style1">Choix de la catégorie</h3>
		<form method="POST" id="categories">
    		<select name="categories" >
    		<?php for($i=0; $i < $numRows; $i++){ ?>
		        <option value="<?php echo $row['id']; ?>"><?php echo $row['contenu']; ?></option>
			<?php $row=mysql_fetch_array($query); ?>
			<?php } ?>
    		</select>
    		<input type="submit" value="OK"/>
		</form>


Jusque la sa marche nikel.
Maintenant bah j'ai refet exactement le meme code mais avec des variable différente, sa me fait apparaitre la deuxiemme nikel mais avec tout dedans normal, .

Dans ma deuxieme table subcat j'ai mis idcat qui correspond au id de la premiere tab
J'ai test de faire un if et des else , et un switch , avec toute les 2 options possibles que j'ai mis dans ma 2 eme tables pour liée l'une en fonction de l'autre, sans résultats.

Donc la sa fait deja une aprem de taf que je test des truc sans résultat, sur le net pour liée
2 liste j'ai trouvé que des modèle avec de l'ajax et un code imcoprhéensible ou je me perd dedans.

C'est ma première semaine de php. Donc je galère un peu Smiley confus .
Modifié par b4rto (27 Aug 2009 - 10:26)
Salut,

Je ne comprend pas tout à fait ce que tu souhaites réaliser. Tu veux que quand la personne sélectionne une catégorie ça fasse apparaitre les sous catégories dans une liste à côté ? Ou alors tu veux afficher une liste déroulante par sous catégorie ?

Enfin explique nous ce que tu veux faire et ton problème.
en faite j'ai une liste déroulante, composé de 10 catégories, chacune de ces catégories a plus sieur sous catégorie.
Donc je veux que quand je click sur ma catégorie, cela fasse apparaitre une deuxiemme liste avec les sous catégorie.
Apres mes sous catégories correspondent à des pages html

En faite je fait un administration pour mon sit web, et je veux pourvoir séléctionnée la page que je veux éditer.
Mon problème c 'est que j'ai mes deux liste qui apparaisse sur ma page mais dans ma deuxieme liste tout ma table apparait alors que je veux que les sous catégorie que j'ai choisie en fonction de la premiere liste :
Un schéma pour exprimé ma penser car je dois mal m'exprimé.
http://images.imagehotel.net/bi7y6erabe.jpg
Voila par exemple dans ma premiere liste j'ai choisi "epilation"
bah dans ma deuxieme liste je veux que seul les sous categorie avec idcat = 2 donc les sous catégorie qui appartienne a epilation apparaissent dans la liste.
La mon probleme c'est qu'elles apparaissent toute, donc je comprend pas trop comment je fais pour liée la deuxieme liste par rapport au id de la première.
Le premier lien est bien sauf que moi mes liste ce remplise a partir de la base de donné car j'ai plus de 100 sous catégories. Lui il utilise du javascript avec des array imagine tout le code que sa fait pour mes catégories.
Après il utilise un switch case pour gérer les différent choix j'ai test ce matin avec le mien mais j'arrive pas à faire en sorte que sa le face en fonction de mes id liée au idcad.
Je vais retest, et je vous envoie le code.
Modifié par b4rto (28 Aug 2009 - 09:49)
Ok bah j'ai trouvé la solution tout seul, je la donne sa peut aidé certains, vu toute les recherche que j'ai fait sur google et j'ai rien trouvé pour liée 2 liste juste en php avec sql :
Donc d'abord faut appelé la base et select les 2 tables : avec mysql_fetch_array je retourne un tableau avec les ligne demandé donc ici toute la table catégories. Ensuite le mysql_num_rows sa récupére le nombre de lignes que j'ai récupérer, donc par rapport a ma base 10 lignes. Ensuite dans le select de ma 2 eme liste : j'ai mis un $_POST dans le select, ce $_post contient tous les couples variable / valeur transmis par le POST de la première liste.

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("thermoterme");
//mysql_close();

$query=mysql_query("SELECT * FROM categories ORDER BY id");
$row=mysql_fetch_array($query);
$numRows=mysql_num_rows($query);

if(isset($_POST['categories']))
{
$querysubcat=mysql_query("SELECT * FROM subcat WHERE idCat=".$_POST['categories']." ORDER BY idSubCat");
$rowsubcat=mysql_fetch_array($querysubcat);
$numRowssubcat=mysql_num_rows($querysubcat);
}

?>


Ensuite au nivo html bah on crée les 2 liste et on echo les tables à partir
des variables définie avant. En faite moi elle été pas liée car j'avais pas définie mon idcat, donc il récupéré pas les id de ma premier base
WHERE idCat=".$_POST['categories']."


Voici le code html pour faire les 2 listes qui se charge à partir de la base.Apres dans ma deuxiemes liste le (action="goEdit.php") c'est par ce que ma liste correspond a des page php que je vais administrer mes deux listes servent justes a séléctionné quels pages je veux administrer.
<h3 class="style1">Choix de la catégorie</h3>
		<form method="post" id="categories">
    		<select name="categories" >
    		<?php for($i=0; $i < $numRows; $i++){ ?>
		        <option value="<?php echo $row['id']; ?>"><?php echo $row['contenu']; ?></option>
			<?php $row=mysql_fetch_array($query); ?>
			<?php } ?>
    		</select>
    		<input type="submit" value="OK"/>
		</form>
	<h3 class="style2"> Choix de la page</h3>
			
			<form method="post" id="subcat" action="goEdit.php">
			 	<select name="categories">			 			
			 		<?php for($j=0; $j < $numRowssubcat; $j++){ ?>
			 		<option value="<?php echo $rowsubcat['idSubCat']; ?>"><?php echo $rowsubcat['LibelleSubCat']; ?></option>
			 		<?php $rowsubcat=mysql_fetch_array($querysubcat); ?>
					<?php } ?>				
			 	</select>
			 	<input type="submit" value="OK"/>


Merci comme même pour les liens.
Modifié par b4rto (28 Aug 2009 - 10:05)