Se connecter avec
S'enregistrer | Connectez-vous

creation lien hypertexte depuis BDD

Dernière réponse : dans Programmation

Bonjour à tous,

alors voilà, j'ai besoin d'un ptit coup de pouce, je trouve partout des ptites infos mais j'aurais bien besoin que l'on me détaille les choses ;-)

J'ai réussi à créer un menu déroulant qui est chargé à partir d'une de mes tables de donnees. quand l'utilisateur selectionne un des champs, je recupere sa selection grace au forulaire et la valide grace à un bouton. Bref, j'affiche ensuite les resultats de sa recherche.

rien d'extra jusque là. Mais la nuance est que je voudrais que chaque item listé en réponse soit un lien hypertext vers une autre page qui puisse recuperer en variable les choix de l'utilisateur (le 1er ds le menu deroulant, et le 2ème qui correspond au lien sur lequel il a cliqué).

Et là je bug !

Je suis debutante en php ;-)

Je vous donne mon code pour le moment, c'est petit ;-) :

Citation :


<?php
// connexion a la base de donnees
mysql_connect("localhost","root","");
mysql_select_db("");


// remplissage du menu deroulant contenant les layers
$sql='SELECT layer FROM LAYERS';
$query=mysql_query($sql) or die ('erreur');

// creation d'un formulaire permettant de recuperer le layer selectionner ds le menu
echo'<form action="" method="post" enctype="multipart/from-data"><select name="essais_layers">';
$nb_layers=mysql_num_rows($query);
if($nb_layers[0]) echo'<option> aucun layer </option>';
else while ($list=mysql_fetch_array($query)) echo'<option value="'.$list['layer'].'">'.$list['layer'].'</option>';

//fin du select et du formulaire
echo'</select><input type="submit" value="recherche des sous segments"></form>';

//recuperation du choix de l'utilisateur pour nouvelle recherche BDD
if(isset($_POST['essais_layers'])){
$request=mysql_query("SELECT sub_segment FROM SUB_SEGMENTS,LAYERS WHERE (SUB_SEGMENTS.link_layer=LAYERS.key AND layer='".$_POST['essais_layers']."');") or die (mysql_error());
while($reception=mysql_fetch_array($request)){
echo $reception['sub_segment'];
echo "</br>";
}
}


//fermeture de l'acces a la base de donnees
mysql_close();
?>



Voilà voilà, donc je voudrais que chaque 'sub_segment' affiché envoie vers une page qui sera la meme pour tous mais qui sera mise à jour (qui variera) grace à la recuperation (ds cette nouvelle page) du champ selectionné par l'utilisateur.

Si je n'ai pas été claire, n'esitez pas à me demander d''essayer' de preciser ;-)

Merci beaucoup pour votre aide.

Dites moi surtout où placer le code... parce que parfois je n'ai que le bout de truc qui est sensé m'aider mais je en sais pas quoi en faire ensuite ;-)

Merchi

Autres pages sur : creation lien hypertexte bdd

Lassé par la pub ? Créez un compte
Expert Programmation

Citation :
Je suis debutante en php ;-)

Et en forum PPC/Cat' programmation aussi.
Si tu ne veux pas que ceux qui pourraient avoir la solution à ton problème te boudent, modifie ton post et remplaces-y la balise
Citation :
par la balise [code] ;) 

ok, bien recu. En esperant que ca m'attirera des reponses ;-)
  1. <?php
  2. // connexion a la base de donnees
  3. mysql_connect("localhost","root","");
  4. mysql_select_db("cecile");
  5.  
  6.  
  7. // remplissage du menu deroulant contenant les layers
  8. $sql='SELECT layer FROM LAYERS';
  9. $query=mysql_query($sql) or die ('erreur');
  10.  
  11. // creation d'un formulaire permettant de recuperer le layer selectionner ds le menu
  12. echo'<form action="" method="post" enctype="multipart/from-data"><select name="essais_layers">';
  13. $nb_layers=mysql_num_rows($query);
  14. if($nb_layers[0]) echo'<option> aucun layer </option>';
  15. else while ($list=mysql_fetch_array($query)) echo'<option value="'.$list['layer'].'">'.$list['layer'].'</option>';
  16.  
  17. //fin du select et du formulaire
  18. echo'</select><input type="submit" value="recherche des sous segments"></form>';
  19.  
  20. //recuperation du choix de l'utilisateur pour nouvelle recherche BDD
  21. if(isset($_POST['essais_layers'])){
  22. $request=mysql_query("SELECT sub_segment FROM SUB_SEGMENTS,LAYERS WHERE (SUB_SEGMENTS.link_layer=LAYERS.key AND layer='".$_POST['essais_layers']."');") or die (mysql_error());
  23. while($reception=mysql_fetch_array($request)){
  24. echo $reception['sub_segment'];
  25. echo "</br>";
  26. }
  27. }
  28. mysql_close();
  29. ?>


juste, la balise [code] n'est pas proposé ds les outils, dc je l'ai mis en [/cpp] pcq il s'agit de php . En esperant que ca conviendra comme cà ;-)

En effet le bouton indique C++ :( 

Bon bin il te suffit de passer en param de la page appelée les variables et leurs valeurs récupérées ...

Du style

  1. <a href="index.php?var1=a&var2=12">link</a>


Que tu récupéreras dans ta page "index.php" par la variable $_GET.

Par ailleurs je remplacerais tes
  1. if(isset($_POST['essais_layers']))
par
  1. if (array_key_exists('essais_layers',$_POST))


isset m'ayant posé des problèmes de compatibilité selon comment était configuré le serveur ou était hosté le site ;) 

Merci bcp boubpopsyteam.
Je comprend bien la methode, le soucis etant que je mes valeurs des parametres à faire passer sur l'autre page ne sont pas fixes ! toi, tu les mets = à a ou à 12 mais moi ca va etre egal au lien selectionner par l'utilisateur.
Voilà ce que j'ai pensé : ranger chacun des resultats de ma requete ds un tableau. Ensuite, creer un lien pour chaque element du tableau. Et donc, en creant ce lien je ferai passer en parametre sur l'autre page la valeur de la case referente. T'en pense quoi ?
Je vais chercher sur les tutoriels comment ranger mes resultats ds un tableau. Mais pour mettre en parametre le choix, pour l'instant j'ai testé :

  1. $i=1;
  2. while($row=mysql_fetch_array($request)){
  3. $nom[$i]=$row;
  4. ?>
  5. <a href="index.php?$nom[$i]">$nom[$i]</a>;
  6. <?php
  7. echo $row['sub_segment'];
  8. echo "</br>";
  9.  
  10. }


D'apres les explications que l'on m'a donné, ceci me creer un tableau intitulé 'nom' ds lequel sont rangés mes resultats.
Probleme, la creation de lien que j'ai faite, m'afficher des liens avec un nom unique :"$nom[$i]". Ca ne me recupere pas la valeur presente ds la case $nom.

C'est peut etre tres bete, mais jvois pas trop là :heink: 

Merci bcp pr ton aide

@+
Lassé par la pub ? Créez un compte