Page 1 sur 1

lien php

Posté : 13 avr. 2005, 13:07
par hehe
salut tout le monde :) voilà ma question va sembler bête pour certains mais bon... j'ai 2 tables mySQL comme ceci :

HOWTO (how_id,#cat_nom,how_nom,how_texte)
CATEGORIE (cat_nom,cat_description)

alors voila j'affiche tout le contenu de ma table CATEGORIE sur une page php puisque comme vous l'aurez compris il y a plusieurs howtos pour une catégorie donc je veux laisser le soin à l'internaute de choisir sa catégorie avant qu'il ne choississe son howto...
Cependant Je n'arrive pas à récupérer les howtos d'une catégorie en cliquant dessus...Je pense que c'est possible de faire toutes les possibilités via 2 pages PHP, une page catégorie qui ne bougerait pas et une page howto qui serait dynamique en fonction du choix de la catégorie... Pourriez-vous me donner un coup de main, m'éclaircir svp merci ! :roll:

Posté : 13 avr. 2005, 13:39
par ouckileou
par exemple, tu affiches la liste des catégories sous forme de liens
echo "<a href=\"howto.php?idCat=".$idCat."\">".$nomCat."</a>";
et la page howto.php va lister les How To correspondant à l'id de catégorie transmis par le lien, récupéré par $_GET['idCat']

tu peux même faire ça sur la même page si tu veux garder le menu des catégories et afficher les howto correspondants

voilà une piste essaye et repost si tu as des problèmes

++

lien php

Posté : 13 avr. 2005, 13:42
par hehe
ok ok je vois ce que tu veux dire je vais essayer merci :)

Posté : 13 avr. 2005, 13:49
par sadeq
page1: Affichage des catégories

$sql="select * from catégorie";
c'est cette requête qui va remplir la liste des catégories après exécution.

On peut laisser javascript s'occupe de la selection d'une catégorie de la liste en programmant un evenement onChange qui fait un submit
d'un formulaire qui envoi vers la page 2:
$sql="select * from catégorie"; 
$requête = mysql_query ($sql);

echo "<form name='form1' method=post action='page2.php'>
         Catégories <select name='cat_nom' onChange=form1.submit()>
         <option></option>";

while ($cat = mysql_fetch_array($requête)) {
   $cat_nom = $cat["cat_nom"];
   $cat_description = $cat["cat_description "];
  echo "<option value = '$cat_nom'> $cat_description </option>";
}

echo "</select>
         </form>";
La page 2 doit recevoir le champ "cat_nom" qui est la liste de la page 1
et où le formulaire transmet en mode POST.
La page 2 utilisera ce champ pour selectionner les HowTo :
$cat_nom = isset($_POST["cat_nom"]) ? $_POST["cat_nom"] : null;
if ($cat_nom != null) {
    $sql ="select * from HOWTO where cat_nom = '$cat_nom' ";
    ....
    //Exécuter la requête, traiter le résultat et afficher les données
}

Posté : 13 avr. 2005, 13:55
par ouckileou
ok solution toute cuite :)

par contre, pas de Javascript, pas de navigation... :roll:

lien php

Posté : 13 avr. 2005, 14:22
par hehe
ok ok t'as solution fonctionne très bien... mais je voudrais plutot afficher les catégorie en tant que lien et non en liste déroulante... je récupére le cat_nom dans ma 2eme page php avec un $_REQUEST ? :) merci pour vos réponses !

Posté : 13 avr. 2005, 14:27
par ouckileou
ben en lien c'est pareil, sauf que tu remplaces le html pour une liste déroulante, par du html pour un lien

je t'ai mis le code pour faire ces liens

en cliquant sur ces liens tu transmettras donc les id de catégorie dans l'url, il te faut donc les récupérer avec $_GET[] dans la deuxième page

lien php

Posté : 13 avr. 2005, 18:16
par hehe
merci pour votre aide ;) ça fonctionne très bien et c'était pas bien difficile ! :p merci encore !

récupération d'un ID pour lien vers une nouvelle page

Posté : 09 juin 2007, 15:44
par wik
Bonjour,

J'ai viens de lire le post car j'ai exactement le même type de problème, mais chez moi ça ne marche pas !

J'ai une liste d'artistes (dans tableau à 3 colonnes).
Je souhaite, en cliquant sur un artiste, afficher dans une nouvelle page un formulaire de modification de cet artiste, dans lequel s'affiche dans les champs "input" les valeurs de l'artiste en question.

dans la barre d'adresse, j'ai bien l'id de l'artiste sélectionné, par contre dans la page de formulaire, le contnu est vierge...

dans la 1ere page, j'ai donc :
<?php
 $requete = mysql_query ("SELECT * FROM artiste_dico ORDER BY artiste_nom");
 
 $n = mysql_num_rows($requete); // compte le nbre d'enregistrement 
 $compteur = 0; 
 $valeur = $n/3; // divise le nbre d'enregistrement par 3 
 $valeur = ceil($valeur); // arrondi 
 echo '<table width="630"><tr valign="top"><td width="203" class="menuTitreNG">' ;

while
 ($resultat = mysql_fetch_array($requete)) {

if ($compteur == $valeur) { echo '</td><td width="10"></td><td width="204" class="menuTitreNG">'; // tu changes de colonne 
$compteur = 0; // tu remet le compteur a zéro 
} 

$artiste = $resultat[artiste_prenom]. " " .$resultat[artiste_nom];
$artiste_id = $resultat[dico_id];

echo '<a href="maj_artiste_modif.php?id='.$artiste_id.'">'. $artiste .'</a>' ; 
echo '<br>'; 

$compteur++; // ajoute 1 au compteur a chaque passage 
} 

echo '</td></tr></table>'; 
?>
dans mage d'activation du formulaire :
<?php
     require ("include/connect.php");
	 
	 $_GET['artiste_id'] = $artiste_id;
	 
	 $requete = mysql_query ("SELECT artiste_prenom, artiste_nom FROM artiste_dico WHERE dico_id = '".$_GET['artiste_id']."'") or die('Erreur : ' . mysql_error());

	 $modif = mysql_fetch_array($requete);
	  echo'<form method="post" action="maj_artiste.php">
        <span class="txt10grasBleu">pr&eacute;nom</span> 
        <input type="text" name="artiste_prenom" value="'.$modif[artiste_prenom].'" size="30">
        <br>
        <span class="txt10grasBleu">nom</span> 
        <input type="text" name="artiste_nom" value="'.$modif[artiste_nom].'" size="30">
        <br>
        <input type="submit" name="modif" value="OK">
      </form>';?>
Merci d'avance de votre réponse.

Posté : 10 juin 2007, 02:34
par ouckileou
Voir lien débugage SQL/PHP dans ma signature

(enfin, il manque quotes ou guillemets autour de tes indices de tableau mais bon, j'aimerais que tu lises ce sujet quand même)

Ah oui, et cette ligne est bizarre aussi :
$_GET['artiste_id'] = $artiste_id; 

normalement c'est l'inverse qu'on fait, pour utiliser la variable locale par la suite. Toi tu écrases ton $_GET avec... rien, et tu la réutilises dans la requête :roll:
Donc si tu suis les conseils du sujet cité plus haut, et que tu affiches le SQL généré, je pense qu'il n'y a rien dans ta requête, et donc qu'elle ne renvoie rien.