Liste pour récupérer données mysql

cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007 - 14 août 2007 à 11:14
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008 - 16 août 2007 à 12:55
Bonjour à tous,

Depuis 2 jours, je cogite la dessus et je n'arrive vraiment pas à faire ce que je veux.
J'ai cherché sur le net, mais sans succes (p-e que j'ai mal cherché, je sais pas).

Je voudrais créer une liste qui affiche des données mysql (les noms par exemple). Jusque la, pas de problème.

La ou ça coince, c'est que j'aimerais, qu'une fois un nom selectionné, ca affiche (dans la même page) toutes les informations en corrélation avec le nom.

Voila,
Merci de votre aide.

25 réponses

kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
14 août 2007 à 11:42
Si tu veux faire ca en php, il faut un lien vers une autre page ou t'as les infos de la personne par exemple.
[infogens.php?user=jean-paul_torre Jean-Paul Torre]

Ou alors si tu veux faire ca en dynamique, il faut du javascript.
Regarde les tutoriaux sur AJAX.

_Marikou
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
14 août 2007 à 11:44
Salut,

par "dans la même page", est-ce que tu veux dire "sans rechargement de page" ?

Pour cela il te faudrait du javascript et éventuellement un peu d'Ajax, mais on pourra t'en dire plus quand tu auras détaillé ce que tu veux.
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
14 août 2007 à 11:47
Pas forcément sans rechargement de page non.
Mais même, je peux également le faire dans une autre page, c'est pas un prob.
En fait, c'est pour faire une genre de bdd des membres d'un site.
Ils ont un formulaire qu'ils remplissent avec différentes informations.
Apres, il y a une liste qui repertorie tout le monde par nom par exemple, on clique sur le nom etc...et on a la liste des données relative à ce membre.
Donc le faire sur 2 pages, c'est pas un problème à la limite.
Par contre, ce qui m'embète [auteurdetail.aspx?ID=298729 kishkaya] c'est que, dans ce que tu me dis, je dois faire le lien pour chaque personne ? j'aimerais que ca se fasse "automatiquement" suivant ce qu'il y a dans la bdd.

Merci de votre aide :)
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
14 août 2007 à 12:00
Non tu le fais pas pour chaque personne, tu fais une page php infogens.php ou tu recupere la variable $_GET['user'].
En suite tu fais une requet SQL du genre :
$req = mysql_query("SELECT * FROM utilisateurs WHERE login='".$_GET['user']."'");
Et tu fais un $valeur = mysql_fetch_array($req);
Et t'affiche ce que tu veux apres avec $valeur['id'],$valeur['age']...
_Marikou
0

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

Posez votre question
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
14 août 2007 à 12:20
Je vais tester ça :)
Par contre, je peux faire tout ça dans la même page au final ?
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
14 août 2007 à 12:31
Oui completement tu peux te faire ca dans la même page avec un
if (isset($_GET['user'])) {

//code pour afficher les infos de l'utilisateur

}
que tu peux mettre ou tu veux dans ta page

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
14 août 2007 à 13:02
Je m'en sors pas. Pourtant, c'est super bien expliqué Marikou, mais je connais quasiment pas le sujet (bon, je sais, quand on connait pas, on apprend ou on cherche pas faire).

Attention les yeux, ca va piquer (je sais, c'est pas très propre, et doit y'avoir plein de trucs qui servent à rien) :

<?php
mysql_connect("*****", "*****", "****"); // Connexion à MySQL
mysql_select_db("****");
?>
<select name="select" size="1" id="select">
  <?php
$resultat=mysql_query("select nom from bdd order by NOM") or die ("requète non executé");
if (! $resultat) { echo "Erreur requete"; exit;}
while ($ligne=mysql_fetch_array($resultat))
{
?>
  <option><?php echo ''.$ligne['nom'].'';?> </option>
  <?php
}
mysql_close($connexion);
?>
  </select> 
  </form>
  <form name="form1" action="bdd.php" method="get">
 
  </form>

ple d'affichae :

  Métier : <?php echo $donnees['metier']; ?>
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
14 août 2007 à 14:12
Je ne comprends pas ou ça coince :

<?php
mysql_connect("*****", "*****", "****"); // Connexion à MySQL
mysql_select_db("****");
?>
<select name="select" size="1" id="select">
  <?php
$req = mysql_query("SELECT * FROM bdd WHERE login='".$_GET['user']."'");
$donnees = mysql_fetch_array($req);
if (! $req) { echo "Erreur requete"; exit;}
while ($ligne=mysql_fetch_array($resultat))

{
?>
  <option><?php echo ''.$ligne['nom'].'';?> </option>
  <?php
}
mysql_close($connexion);
?>
  </select>  
  </form>
  <form name="user" id="user" action="bdd.php" method="get">
 
  </form>

<?php echo $donnees['login']; ?>
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
15 août 2007 à 19:26
Salut,
Bon, en fait t'as deux truc qui deconne.
->ta balise <form> doit etre avant ton select.
Form permet d'encapsuledr un formulaire, ca dit que tu fais un formulaire.
Deja apres avoir fait ca tu sera valid HTML.
Mais c'est pas le seul probleme :
->il faut une valeurpour chaque option qui sera la valeur de ta variable $_GET['select']
Pour cela tu remplaces   <option><?php echo ''.$ligne['nom'].'';?> </option>
par
  <option value= "'. $ligne['identifiant_propre_a_chaque_enregistrement'] .'"><?php echo $ligne['nom'];?> </option>

Note aussi que ca sert a rien de faire echo ''.$var.''; le '. sert à la concatenation de chaine, il te servira pour un :
$var = 'jo';
echo 'bon'.$var.'ur';
Hesite pas a poser d'autre question.
Et essaye de remettre ton code corrigé, peut être qu'il peut être amelioré

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
15 août 2007 à 19:45
alors, j'ai suivi tes instructions (bien que j'ai pas compris certaines choses) mais je dois pas être doué  :
<?php
mysql_connect("**", "**", "**"); // Connexion à MySQL
mysql_select_db("**");
?>
<form name= "user" id="user" action="bdd.php" method="get">
<select name="select" size="1" id="select">
  <?php
$req = mysql_query("SELECT * FROM bdd WHERE login='".$_GET['user']."'");
$donnees = mysql_fetch_array($req);
if (! $req) { echo "Erreur requete"; exit;}
while ($ligne=mysql_fetch_array($resultat))

?>
  <option value="'.$ligne['nom'].'"><?php echo $ligne['nom'];?> </option>

  </select> 
  </form>

  Qu'est ce que tu entends par ' identifiant_propre_a_chaque_enregistrement' ?
<option value ="'.$ligne['identifiant_propre_a_chaque_enregistrement'].'">

 En tout cas, merci du soutien :)
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
15 août 2007 à 19:54
En gros ton formulaire tu veux qu'il te mette dans une liste <select> les gens qui ont le login que tu passe dans l'url.
Chaque option est un enregistrement de ta bdd.
Mais quand tu envoie ton formulaire, il passe en get le parametre select (name="select"), et ce parametre a pour valeur la valeur de l'option.
la valeue de l'option est dans l'attribut valeur.
donc tu peux mettre   <option value="'.$ligne['nom'].'"><?php echo $ligne['nom'];?> </option>
Mais si t'envisage de faire des operations sur cet enregistrement il vaut mieux y avoir acces par un identifiant propre a chaque utilisateur.
Une clé primaire de ta table mise en auto increment.

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
15 août 2007 à 19:59
Donc, en mettant une clé primaire de la table (id) :<select name" id " size"1" id="select">
[...]
<option value="'.$ligne['id'].'"><?php echo $ligne['nom'];?> </option>

 ?
Avec ces changements (si toutefois, ils sont corrects), qu'est-ce qui fait que ça ne marche pas ?
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
15 août 2007 à 20:44
Re bonjour
Non c'est modif ne sont pas bonne name="select" peut etre gardé, ca n'a rien a voir avec la valeur de l'option.

Je pense qu'on doit voir ton code bout apres bout.
Essaye d'afficher les utilisateurs avec ce code :
<?php
mysql_connect("**", "**", "**"); // Connexion à MySQL
mysql_select_db("**");
$user="jean-paul";
$req = mysql_query("SELECT * FROM bdd WHERE login='".$user."'");
while ($ligne=mysql_fetch_array($req)) {
echo 'Utilisateur : '.$ligne['nom'].'
';
}
?>

Mais ca ne sert a rien de faire un WHILE si chaque utilisateur a un login different.

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
15 août 2007 à 21:05
Ok.

Bon, ce code marche (en mettant un user de la table), et m'affiche bien le nom du dit user.
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
15 août 2007 à 22:10
Si tu n'as dans ta base qu'un utilisateur avec ce login (en gros un login par utilisateur) tu peux enlever le while:

<?php
mysql_connect("**", "**", "**"); // Connexion à MySQL
mysql_select_db("**");
$user="jean-paul";
$req = mysql_query("SELECT * FROM bdd WHERE login='".$user."'");
$ligne=mysql_fetch_array($req);
echo 'Utilisateur : '.$ligne['nom'].'
';
?>

Je sais pas trop pourquoi tu voulais mettre un <select> avec des <option>
En gros j'ai pas trop compris exactement ce que tu voulais que ton script fasse ?

_Marikou
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
15 août 2007 à 22:12
Apres si tu veux que le login soit passer en parametre dans l'url tu rajoute ca au code :
<?php
if (isset($_GET['nomuser'])) {
mysql_connect("**", "**", "**"); // Connexion à MySQL
mysql_select_db("**");
$user="jean-paul";
$req = mysql_query("SELECT * FROM bdd WHERE login='".$_GET['nomuser']."'");
$ligne=mysql_fetch_array($req);
echo 'Utilisateur : '.$ligne['nom'].'
';
}
?>

Et si ton script tu l'as mis dans un fichier index.php, tu testes ton script en allant a l'adresse : index.php?nomuser=jean-paul

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
16 août 2007 à 02:20
Alors en fait :
J'ai une bdd avec tout pleins de renseignement sur des membres :
Id, login, nom, prenom etc...
Je voudrais que, qd on arrive sur la page, il y ait sur la gauche, une liste déroulante avec, par exemple, le Login de tout le monde.
On selectionne le login de jean-pierre par exmeple, on valide avec un bouton, et ca nous envois sur la même page (ou pas forcément), toutes les infos relatives à cette personne.
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
16 août 2007 à 10:16
Bonjour,
Pour laiste de tout le monde tente ca :
<?php
mysql_connect("**", "**", "**"); // Connexion à MySQL
mysql_select_db("**");
echo '<form method="post" action="."><select name="le_login">';
$req = mysql_query("SELECT * FROM bdd");
while ($ligne=mysql_fetch_array($req)) {
echo '<option value="'.$ligne['nom'].'">'.$ligne['nom'].'</option>';
}
echo '</select></form>';
?>

_Marikou
0
kishkaya Messages postés 365 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 17 avril 2008
16 août 2007 à 10:17
A mon avis appeler la table contenant le nom de tout le monde "bdd" c'est pas lameilleure chose a faire. Appelle la plutot utilisateur/user/...

_Marikou
0
cs_benjamain Messages postés 13 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 16 août 2007
16 août 2007 à 12:31
Ok pour le nom de la table
Le code a l'air de marcher, même si il m'affiche pas les infos car il me renvoit sur une autre page (et je comprends pas trop pourquoi vu qu'on l'a spécifié nulle part).
0
Rejoignez-nous