Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

bonjour

j ai une bdd mysql avec une table membres

j ai des pages html avec une fiche individuelle ( contenant divers infos) PAR membre

j ai un formulaire de recherche ...pour rechercher un membre par son nom,

la requete fonctionne cela affiche bien ce que je veux mais je ne sais pas comment inserer un lien dans l 'affichage du resultat vers la page de fiche individuelle du membre recherché, lien qui par definition est variable

bref...je ne sais pas l'ecrire!!

merci de m aider

Modifié par michka

Posté(e)

Tu ne précises pas dans quel langage tu développes :P

En supposant que c'est du PHP, je vais essayer de t'aider

 

Je suppose que ta table des membres comprend au moins :

Identifant du membre (disons ID), Nom du membre (NOM), Prénom du membre (PRENOM)

 

dans ton formulaire de recherche, il doit y avoir un champ NOM

 

voici un exemple de code pour la page vers laquelle ton formulaire envoie des données

 

<?php 
$query = "SELECT * FROM MEMBRES WHERE NOM LIKE '%".$_REQUEST["NOM"]."';";
$result = mysql_query($query);
while($membre = mysql_fetch_assoc($result)) {
  echo "Membre : ".$membre["PRENOM"]." ".$membre["NOM"];
  echp "<a href=\"fiche.php?id=".$membre["ID"]."\">voir fiche</a>";
} // END while
?>

tu transmet l'identifiant du membre en paramètre dans l'url : ce qui suit le ?

et sur la page fiche.php tu récupère l'identifiant et tu lance une nouvelle requête pour récupérer les informations. tu auras un truc du style :

<?php 
$query = "SELECT * FROM MEMBRES WHERE ID = ".$_REQUEST["id"];
$result = mysql_query($query);
$membre = mysql_fetch_assoc($result)

// Affichage de la fiche
echo "ID : $membre[ID]<br>";
echo "$membre[PRENOM] $membre[NOM]<br>";
echo "adresse : $membre[ADRESSE]<br>";
echo "$membre[CODE_POSTAL] $membre[VILLE]<br>";

// etc...

?>

Posté(e)

oui c est bien en php et merci c est exactement ce que je cherchais mais juste une question pour l'instant je n ai pas d'id je dois les mettre dans tous les body de toutes mes pages de fiches individuelles?

Posté(e)

j'y arrive pas !!

voici mon code:

<code><?php //recherche par nom de famille

$nom = $_POST['nom'];

mysql_connect("localhost", "root", ""); // Connexion à MySQL

mysql_select_db("eetg"); // Sélection de la base eetg

 

//connexion établie

$resultat=mysql_query("select * from membres where nom LIKE '$nom' " ) or die (

mysql_error());

while ($donnees = mysql_fetch_array($resultat))

{

?>

<br /><center>

<table width="300" height="50" cellspacing="1" border="2" align="center">

<tr>

<td align="center"><strong>Mr <?php echo $donnees['nom'].'&nbsp'. $donnees['prenom'] .'&nbsp'. 'travaille pour ' . $donnees['societe']?></strong</td></tr>

</table>

<br /><br />

<input type="button" value="Fermer" onClick="window.close()" />

</center>

<?php

}

mysql_close(); // Déconnexion de MySQL

?></code>

je n arrive pas a ce que le lien ouvre la bonne page, pour l'instant il ouvre une page erreur. J ai esayé de mettre un id dans le body d'une fiche individuelle j ai tout mis au meme niveau mais ...rien

:P que dois faire?

Posté(e) (modifié)

Il y a plusieurs choses qui clochent dans ton code

Tel qu'il est, il va afficher sur une page, une succession de tableaux contenants chacun :

"Mr NOM PRENOM travaille pour SOCIETE"

suivi d'un bouton pour fermer la fenêtre...

 

mais je ne vois nulle part de lien pour afficher disons la fiche détaillée :P

c'est pour celà que dans mon exemple de code, j'avais placé

echo "<a href=\"fiche.php?id=".$membre["ID"]."\">voir fiche</a>";

(il y avait une faute de frappe, il fallait bien sur comprendre echo et pas echp :-P )

 

Ce lien calculé doit permettre d'afficher (à l'aide du deuxième exemple de code) la fiche individuelle détaillée du membre choisi,

 

mais ça ne marche que si ta table membre contient un champ ID unique pour chacun des membres...

En général toute table de données posséde un champ de ce type, qui sert de "clef primaire" le plus simple étant de lui donner l'attribut "auto_increment", comme ça, à chaque fois que tu ajoutes une fiche dans ta table, le N° identifiant est incrémenté (augmenté de 1) et chaque fiche a donc un ID différent.

 

La meilleure solution à mon avis serait d'ajouter un champ ID à ta table, de remplir ce champs à la main (dans phpmyadmin par exemple) avec un nombre différent pour chacun des membres et après (seulement après sinon mysql va se plaindre de doublons dans la clef primaire) de le définir comme clé primaire.

 

un autre solution étant d'utiliser le couple "NOM,PRENOM" comme identifiant unique ( les deux, car on ne sait jamais, il peut y avoir des homonymes :P )

 

en reprenant l'exemple de tout à l'heure :

<?php //recherche par nom de famille
$nom = $_POST['nom']; // ou $_REQUEST["nom"];)

mysql_connect("localhost", "root", ""); // Connexion à MySQL
// tu devrais quand même mettre un mot de passe pour root;)

mysql_select_db("eetg"); // Sélection de la base eetg

//connexion établie

$resultat=mysql_query("select * from membres where nom LIKE '$nom' " ) or die (
mysql_error());
// en ajoutant des % tu peux faire une recherche sur une partie du nom;)
// $resultat=mysql_query("select * from membres where nom LIKE '%$nom%' " ) or die (
mysql_error());

while ($donnees = mysql_fetch_array($resultat))
{
?>
<br /><center>
<table width="300" height="50" cellspacing="1" border="2" align="center">
<tr>
<td align="center"><strong>Mr <?php 
echo $donnees['nom'].'&nbsp'. $donnees['prenom'] .'&nbsp'. 'travaille pour ' . $donnees['societe'] ?></strong>
<?php
echo "<a href=\"fiche.php?nom=$donnees[nom]&prenom=$donnees[prenom]"\">voir fiche</a>";
?>
</td></tr>
</table>
<br /><br />
</center>
<?php
}
mysql_close(); // Déconnexion de MySQL
?>

 

puis, en suivant mon exemple, tu crées une page fiche.php qui permettra d'afficher les données de n'importe quel membre, au lieu de créer manuellement une fiche par membre.

quand tu auras cliqué sur le lien créé ci-dessus tu arriveras sur une page avec comme url :

 

fiche.php?nom=unnom&prenom=unprenom

tu retrouveras les valeurs unnom et unprenom dans le tableau $_REQUEST ou $_GET, pas dans $_POST car les paramètres passés dans l'url n'utilise pas ce mode...

à partir de là tu peux faire une requête sur ces champs pour obtenir ta fiche :-(

 

<?php
$query = "SELECT * FROM membres WHERE nom = '$_REQUEST[nom]' AND prenom = '$_REQUEST[prenom]';"
$result = mysql_query($query);
$donnees = mysql_fetch_assoc($result)

// Affichage de la fiche
echo "$donnees [PRENOM] $donnees [NOM]<br>";
echo "adresse : $donnees [ADRESSE]<br>";
echo "$donnees [CODE_POSTAL] $donnees [VILLE]<br>";
echo "travaille pour la société $donnees[societe]<br>"; 
// etc...

?>

Modifié par mediaforest
Posté(e) (modifié)

Merci je vais essayer tout ca

en fait pour l'instant j ai cree un champ lien dans ma table ou je mets le lien vers la page de chacun, j affiche ce champ avec les autres ...et le tour est joué !!

Mais je vais essayer tout ce que tu me dis ca me parrait mieux (j ai l impression de bidouiller en faisant ma solution ca fait pas serieux aux yeux d'un vrai codeur je pense :P ...mais comme je ne suis pas un vrai codeur !)

en tout cas merci pour tout

Modifié par michka

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...