IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Question : Lien vers une page précise


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut Question : Lien vers une page précise
    Salut,

    Voilà je suis en train de créer un site qui permet de connaître le profil de chaque étudiant. J'ai donc crée un formulaire de recherche dans lequel on peut rechercher par :

    - nom
    - prenom
    - sexe (Homme ou Femme ou Rien)
    - semestre (Tous,EDIM1, EDIM2 jusqu'à EDIM8)

    Les critère de recherches sont tous facultatifs. C'est à dire que si on en renseigne aucun, tous les étudiants sont affiché !

    => Voir screen1 (le formulaire de recherche)

    Pour l'affichage maintenant, çà se passe selon deux manières :

    - soit le résultat de la recherche retourne PLUSIEURS étudiants : dans ce cas la page affiche un trombinoscope avec en dessous de chaque photo : le nom, prénom et semestre de chaque étudiant
    => voir screen2

    - soit le résultat retourne UN SEUL étudiant : dans ce cas sa page de profil personnel s'affiche
    => voir screen3

    Voici la page qui traite la recherche et affiche le résultats selon les deux manières (1 étudiants ou plusieurs) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    <?php
     
    //Appel des différentes fonctions d'une page PHP
     
    require_once("fonctions.php");
    entete();
    banniere("R&eacute;sultat de la recherche");
     
    $link = mysql_connect(HOST, USER, PASS);
    mysql_select_db(BASE, $link);
     
    //on recupere les variables du formulaire
     
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    //on met la variable sexe à null si elle n'est pas renseignée dans le formulaire
    if(!isset($_POST['sexe'])){
    	$_POST['sexe']=null;
    }
    $sexe=$_POST['sexe'];
     
    $semestre=$_POST['semestre'];
     
     
     
     
    // tous les champs sont rempli
    if($nom!=null && $prenom!=null && $sexe!=null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, sexe s, semestre se WHERE e.nomEtudiant LIKE '$nom' AND e.prenomEtudiant LIKE '$prenom' AND e.sexeId=s.idSexe AND s.libelleSexe='$sexe' AND e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
    //seul le nom est rempli
    elseif($nom!=null && $prenom==null && $sexe==null && $semestre==null){
     
    	$search = "SELECT * FROM etudiant e WHERE e.nomEtudiant LIKE '$nom'";
    }
    //seul le prenom est rempli
    elseif($nom==null && $prenom!=null && $sexe==null && $semestre==null){
     
    	$search = "SELECT * FROM etudiant e WHERE e.prenomEtudiant LIKE '$prenom'";
    }
    //seul le sexe est rempli
    elseif($nom==null && $prenom==null && $sexe!=null && $semestre==null){
     
    	$search = "SELECT * FROM etudiant e, sexe s WHERE e.sexeId=s.idSexe AND s.libelleSexe='$sexe'";
    }
     
    //seul le semestre est rempli
    elseif($nom==null && $prenom==null && $sexe==null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, semestre se WHERE e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
     
    //seul le nom et prenom sont rempli
    elseif($nom!=null && $prenom!=null && $sexe==null){
     
    	$search = "SELECT * FROM etudiant e WHERE e.nomEtudiant LIKE '$nom' AND e.prenomEtudiant LIKE '$prenom'";
     
    }
     
    //seul le prenom et le sexe sont rempli
     
    elseif($nom==null && $prenom!=null && $sexe!=null){
     
    	$search = "SELECT * FROM etudiant e, sexe s WHERE e.prenomEtudiant LIKE '$prenom' AND e.sexeId=s.idSexe AND s.libelleSexe='$sexe'";
    }
     
    //seul le nom et le sexe sont rempli
     
    elseif($nom!=null && $prenom==null && $sexe!=null){
     
    	$search = "SELECT * FROM etudiant e, sexe s WHERE e.nomEtudiant LIKE '$nom' AND e.sexeId=s.idSexe AND s.libelleSexe='$sexe'";
    }
     
    //seul le nom et le semestre sont rempli
    elseif($nom!=null && $prenom==null && $sexe==null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, semestre se WHERE e.nomEtudiant LIKE '$nom'AND e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
    //seul le prenom et le semestre sont rempli
    elseif($nom==null && $prenom!=null && $sexe==null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, semestre se WHERE e.prenomEtudiant LIKE '$prenom' AND e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
    //seul le sexe et le semestre sont rempli
     
    elseif($nom==null && $prenom==null && $sexe!=null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, sexe s, semestre se WHERE e.sexeId=s.idSexe AND s.libelleSexe='$sexe' AND e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
    elseif($nom!=null && $prenom!=null && $sexe==null && $semestre!=null){
     
    	$search = "SELECT * FROM etudiant e, semestre se WHERE e.nomEtudiant LIKE '$nom' AND e.prenomEtudiant LIKE '$prenom' AND e.semestreId=se.idSemestre AND se.libelleSemestre='$semestre'";
    }
     
    //aucun champs de rempli
    else{
     
    	$search = "SELECT * FROM Etudiant";
     
    }
     
     
    // on envoie la requête
    $req = mysql_query($search) or die('Erreur SQL !<br>'.$search.'<br>'.mysql_error());
     
     
    //on verifie si la recherche renvoi un resultat
    if(mysql_num_rows($req)>1){
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    	while($data = mysql_fetch_row($req))
     
    	    {
    	    	echo "<div></div>";
    	    	echo "<div></div>";
     
    			// affichage du semestre sous forme de lettre et non de chiffre
    			if ($data[17]==1){
    				$libsemestre="EDIM1";}
    			elseif ($data[17]==2){
    				$libsemestre="EDIM2";}
    			elseif ($data[17]==3){
    				$libsemestre="EDIM3";}
    			elseif ($data[17]==4){
    				$libsemestre="EDIM4";}
    			elseif ($data[17]==5){
    				$libsemestre="EDIM5";}
    			elseif ($data[17]==6){
    				$libsemestre="EDIM6";}
    			elseif ($data[17]==7){
    				$libsemestre="EDIM7";}
    			elseif ($data[17]==8){
    				$libsemestre="EDIM8";}
     
    			echo"
    			<img src=\"photos_etudiants/$data[1].$data[2].jpg\" height=\"100\" width=\"100\" ><br/>
    			$data[1] $data[2] $libsemestre<br/><br/>
    			";
     
    			//$trombi = "SELECT * FROM etudiant e, semestre se WHERE e.nomEtudiant LIKE '$data[1]' AND e.prenomEtudiant LIKE '$data[2]' AND e.semestreId=se.idSemestre AND se.libelleSemestre=$libsemestre";
    			//echo $trombi;
     
     
    	    }
    }
    elseif(mysql_num_rows($req)==1){ 
     
    	$data = mysql_fetch_row($req);
    	echo "<div></div>";
    	echo "<div></div>";
     
    	// affichage du semestre sous forme de lettre et non de chiffre
    			if ($data[17]==1){
    				$libsemestre="EDIM1";}
    			elseif ($data[17]==2){
    				$libsemestre="EDIM2";}
    			elseif ($data[17]==3){
    				$libsemestre="EDIM3";}
    			elseif ($data[17]==4){
    				$libsemestre="EDIM4";}
    			elseif ($data[17]==5){
    				$libsemestre="EDIM5";}
    			elseif ($data[17]==6){
    				$libsemestre="EDIM6";}
    			elseif ($data[17]==7){
    				$libsemestre="EDIM7";}
    			elseif ($data[17]==8){
    				$libsemestre="EDIM8";}
     
    	//affichage des informations personnelles des étudiants
     
    	//affichage dy bouton de modification quand la recherche retourne 1 seul etudiant
     
    	echo "<br/><br/>";
    	echo "	<center>
    			<div id='mes_onglets'>
    				<ul>
    					<li id='o_1' class='mon_onglet_selected' onclick='changeOnglet(this);'><b>GENERAL .</b></li>
    					<li id='o_2' class='mon_onglet' onclick='changeOnglet(this);'><b>RESULTATS .</b></li>
    					<li id='o_3' class='mon_onglet' onclick='changeOnglet(this);'><b>CURSUS .</b></li>
    					<li id='o_4' class='mon_onglet' onclick='changeOnglet(this);'><b>AUTRE .</b></li>
    					<li class='mon_onglet'><a href='http://www.google.fr' target='_blank'><b>Lien .</b></a></li>
    					<div class='clear'></div>
    				</ul>
    			</div>
    			
    			<div id='mes_contenus'>
    			
    			<div id='co_1' class='mon_contenu'>
    			
    			<br/>
    			<img src=\"photos_etudiants/$data[1].$data[2].jpg\" height=\"100\" width=\"100\" ><br/><br/>
    			<b><u>Nom :</u></b> $data[1] <br/><br/>
    			<b><u>Prenom :</u></b> $data[2] <br/><br/>
    			<b><u>Date de naissance :</u></b> $data[3] <br/><br/>
    			<b><u>Adresse :</u></b> $data[4] <br/><br/>
    			<b><u>Ville :</u></b> $data[6] <br/><br/>
    			<b><u>Pays :</u></b> $data[7] <br/> <br/>
    			<b><u>Email :</u></b> <A HREF=\"mailto:$data[8]\">$data[8]</A> <br/> <br/>
    			
    			  
    			
    			<br/>
    			<input type=\"button\" value=\"MODIFIER CET ETUDIANT\" onclick=window.location=\"modifier-un-etudiant.php?idEtudiant=".$data[0]."\">
    			<br/><br/>
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			</div>
    			<div id='co_2' class='mon_contenu' style='display: none;'>
    			
    			
    			
    			
    			
    			
    			</div>
    			<div id='co_3' class='mon_contenu' style='display: none;'>
    			
    			
    			<b>Semestre : </b>$libsemestre 
    			
    			
    			
    			
    			
    			
    			
    			
    			
    			</div>
    			<div id='co_4' class='mon_contenu' style='display: none;'>Mon contenu 4</div>
    			</div>
    			</center>
    			";
    }
     
    else{
     
    	echo "Votre recherche n'a genere aucun resultat, veuillez reessayer !";
     
    }
     
     
     
    //requete quand on clique sur une photo dans le trombinoscope
     
     
     
    // on ferme la connexion à mysql
    mysql_close($link);
     
    //Appel des boutons de retour formulaire vierge
    echo "<br/><br/><br/>";
    retouretaccueilformulairerecherche();
     
     
    //Appel de la fonction pied de page
     
    finpage();
     
    ?>
    Ce que je voudrais est assez simple :

    Quand la recherche retourne plusieurs étudiants : je voudrais qu'il soit possible de cliquer sur la photo de l'étudiant (dans le trombinoscope : screen2) dont on désir voir le profil en particulier. Ce lien nous ramènerait au même type de page qui existe actuellement lorsque la recherche ne retourne qu'un seul étudiant.

    Comment pourrais-je faire ?

    PS : je sais que je me suis parfois compliqué la vie dans le code mais ce n'est pas grave, j'aimerais juste résoudre ce problème en touchant le moins possible au code actuel

    Merci !!!

  2. #2
    Membre habitué Avatar de lou-03
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 156
    Points : 153
    Points
    153
    Par défaut
    Tu peux faire une image lien comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<a href=\"la page de la personne.php\"><img src=\"photos_etudiants/$data[1].$data[2].jpg\" height=\"100\" width=\"100\" ><br/>$data[1] $data[2] $libsemestre<br/><br/></a>";
    C'est ce que tu voulais?

  3. #3
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut
    En fait le problème c'est que "la_page_de_la_personne.php" n'existe pas.

    Une nouvelle page est générée automatiquement pour chaque étudiant (regardez le code).

    Donc je ne peux pas pointer vers une page existante.

  4. #4
    Membre habitué Avatar de lou-03
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 156
    Points : 153
    Points
    153
    Par défaut
    Pardon je n'avais pas vu que tu générais une page ^^.

    Et si tu essayes de mettre cette page dans mon exemple : modifier-un-etudiant.php?idEtudiant=.$data[0].

    Ca peut marcher mais j'ai peur que si tu as plusieurs résultats cela ne te génère plusieurs fois le même lien

  5. #5
    Membre régulier Avatar de bond70
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 300
    Points : 77
    Points
    77
    Par défaut
    Ben çà m'ouvre la page de modification des informations pour l'étudiant avec l'idEtudiant=$data[0]

    Sinon j'ai peut être une idée : les conditions qui font que la page s'affiche différemment pour "1" ou "plusieurs" étudiants c'est :

    if(mysql_num_rows($req)>1){ //pour plusieurs étudiants retournés
    echo "affiche le trombinoscope avec tous les étudiants"

    if(mysql_num_rows($req)==1) //pour un seul étudiant retourné
    echo "affiche le profil personnel de l'étudiant trouvé"
    Il faudrait faire croire au système que un seul étudiant est retourné quand on clique sur la photo de celui-ci. Comme çà on pourrait afficher sa page personnelle....

    Mais comment faire ?

    merci !

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/06/2011, 13h00
  2. Réponses: 0
    Dernier message: 07/06/2009, 13h31
  3. Réponses: 2
    Dernier message: 21/10/2008, 14h13
  4. [VBA Excel] Lien vers une page précise
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2006, 22h54
  5. [C#] DataGrid qui contient un lien vers une page
    Par Roach dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/08/2005, 14h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo