Transmission numéros par SESSION et requête SQL
Evelyne31
Messages postés
56
Statut
Membre
-
g4br13l Messages postés 385 Statut Membre -
g4br13l Messages postés 385 Statut Membre -
Bonjour à tous/toutes,
Je cale pour construire une requête et je compte sur vous :
1°) J'ai un fichier php de formulaire de recherche de gîtes (par département, commune...) avec systèmes de sessions.
2°) J'ai un fichier php de traitement de ce formulaire de recherche. Les résultats s'affichent sous la forme d'une liste.
Les résultats sont composés de deux numéros accollés pour éviter les doublons : celui du gîte et celui de la commune où il est situé. Voici la syntaxe de cet affichage :
3°) Le problème est que sur lorsque je clique sur un n° j'arrive sur la page du gîte où il est décrit en détail.
Mais je n'y arrive pas car il me faudrait alors pour faire mes requêtes que le n° du gîte sans celui de la commune et je ne vois pas comment les dissocier ? Quand je fais un echo $numGite j'obtiens les 2 n°. C'est insoluble !!!
Pouvez-vous, SVP, juste me dire comment procéder ??? Ci-dessous ma requête où $_SESSION["numGite"] contient les 2 n°.
En espérant avoir été claire, je vous remercie par avance,
Evelyne
Je cale pour construire une requête et je compte sur vous :
1°) J'ai un fichier php de formulaire de recherche de gîtes (par département, commune...) avec systèmes de sessions.
2°) J'ai un fichier php de traitement de ce formulaire de recherche. Les résultats s'affichent sous la forme d'une liste.
Les résultats sont composés de deux numéros accollés pour éviter les doublons : celui du gîte et celui de la commune où il est situé. Voici la syntaxe de cet affichage :
echo '<td ><a href="../lith_page_gite.php?numGite='. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . '"> '. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . ' </a></td>';
3°) Le problème est que sur lorsque je clique sur un n° j'arrive sur la page du gîte où il est décrit en détail.
Mais je n'y arrive pas car il me faudrait alors pour faire mes requêtes que le n° du gîte sans celui de la commune et je ne vois pas comment les dissocier ? Quand je fais un echo $numGite j'obtiens les 2 n°. C'est insoluble !!!
Pouvez-vous, SVP, juste me dire comment procéder ??? Ci-dessous ma requête où $_SESSION["numGite"] contient les 2 n°.
En espérant avoir été claire, je vous remercie par avance,
Evelyne
SELECT g.*, p.codePays, p.nomPays, d.codeDepartement, d.nomDepartement, c.codeCommune, c.nomCommune FROM GITE g, PAYS p, DEPARTEMENT d, COMMUNE c, AS_COMMU_DEPAR acd WHERE g.numGite '" . $_SESSION["numGite"]. " ' and g.ID_commune = c.ID_commune and p.ID_pays = c.PAYS_ID_pays and d.ID_departement = acd.DEPARTEMENT_ID_departement and c.ID_commune = acd.COMMUNE_ID_commune
23 réponses
- 1
- 2
Suivant
-
Bonjour, je n'ai pas pu te répondre hier mais je ne comprend pas pourquoi tu compte utilisé une variable de session ? as-tu besoin de reprendre ces info par la suite ? Ou c'est une obligation d'utiliser cela ?
-
Sans vouloir te voler ton travail mais juste pour bien comprendre ce que tu fais pourais-je avoir le code des page selection du gite et ensuite celle d'affichage d'info?
-
Ou même un screen de ton résultat que je puisse comprendre parce que je me suis perdu dans ton code!
-
Donc juste pour comprendre ta recherche ce fait-elle par des liste déroulante ? (je me plonge dans ton code apres ma pause je cherche d'abbord a me renseigner ).
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et si ti fesais 4 liste déroulante une a coter des l'autre il rentre les infos qui l'interesse puis presser valider et a se moment tout les gite qui corresponde a cette recherche figure dessous. De cette façon l'utilisateur pourait faire une recherche plus précise ;)
Ensuite pour ta base a tu un MCD ou un MLD ? -
Je dit sa pour te proposé une solution plus simple que ce que tu cherches a faire. Je ne dit pas que ta première façon de faire est fausse ou mauvaise.
-
-
Bon je me prend peut-être beaucoup dans ton projet mais tu dit que cela va se complexifier car tu dois ajouter des options a ce site ou pour géré les listes?
-
Ce que je te dit justement avec une 5ième liste maintenant pour les pays se serais bien car quelque petit if et le tour est joué ;)
Mais je pense que en 2h tu peux finir le systeme de recherche si tout les reste est bien ficellé . -
Et pour le passage a la deuxième page pour les détails, tu devrais essayer de passer ta variable en POST ou en GET
-
Bonjour g4br13l,
et merci pour cette réponse rapide. Mais c'est ce que j'ai tenté de faire sans succès Voici le début de ma page d'affichage des détails :// Récupération des données (critères de recherche) via le formulaire if (isset($_GET["numGite"]) && isset($_GET["codeCommune"]) ) { // si le formulaire a été posté $_SESSION["numGite"] = trim($_GET["numGite"]); $_SESSION["codeCommune"] = trim($_GET["codeCommune"]); $numGite = ($_GET["numGite"]); $codeCommune = ($_GET["codeCommune"]);
Malheureusement unecho $_SESSION["numGite"];
me donne les 2 numéros ensemble et un$codeCommune = ($_GET["codeCommune"]);
me donne : Notice: Undefined index: codeCommune in line 32 et c'est celle de l'echo codeCommune.
Je sèche.
Evelyne -
Bonjour g4br13l,
Merci pour cette réponse matinale. J'ai abandonné hier soir. Tu as raison, il n'y a pas lieu d'utiliser une variable de session car je n'ai pas besoin de cette info par la suite. J'ai vu cette erreur et voilà où j'en suis ce matin :
- sur la page de traitement du formulaire je récupère bien les 2 variables dont j'ai besoin ensuite : $numGite et $codeCommune puisque je les affiche par le code donné ci-dessus :echo '<td ><a href="../lith_page_gite.php?page_gite='. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . '"> '. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . ' </a></td>';
. J'ai juste changé le nom de la page (numGite en page_gite) pour qu'il n'y ait pas 2 fois le même nom "numGite".
- sur la page d'affichage des détails je récupère ces variables par :if (isset($_GET["page_gite"]) && isset($_POST["numGite"]) && isset($_POST["codeCommune"]) ) { // si le formulaire a été posté $_SESSION["page_gite"] = trim($_GET["page_gite"]); $codeCommune = $_POST["codeCommune"]; $numGite = $_POST["numGite"]; ...
Et là, toujours les mêmes messages d'erreur suite à des echo, dans les 2 fichiers :
Notice: Undefined variable: numGite
et Notice: Undefined variable: codeCommune.
J'ai absolument besoin de ce numGite pour toutes mes requêtes du second fichier ?????
Un grand merci si tu voyais d'où vient ce problème jamais encore rencontré ?
Je cherche de mon côté, bonne journée,
Evelyne -
Il n'y a aucun souci g4br12l, c'est très gentil de ta part de te pencher sur mes problèmes. Je te transmets ci-dessous mes codes, qui doivent être parsemés d'erreurs et s'ils peuvent servir au plus de monde possible, c'est tant mieux. Je ne suis pas professionnelle.
Page de traitement du formulaire de recherche. Il y a 4 cases : par département, par commune, par roche et par étage géologique. Seule la recherche par département est finalisée :<?php session_start(); // je démarre la session // ------------------------ //Connexion à la base de données mysql_connect('localhost', 'root', 'root'); mysql_select_db('lithotheque'); // ------------------------ // Initialisation des SESSION : si elles n'existent pas, on les crée if(!isset($_SESSION["recherche"]["mot"])){ $_SESSION["recherche"]["mot"] = ''; } if(!isset($_SESSION["recherche"]["type"])){ $_SESSION["recherche"]["type"] = ''; } /*if(!isset($_SESSION["numGite"])){ $_SESSION["numGite"] = ''; }*/ // ------------------------ // Récupération des données (critères de recherche) via le formulaire if (isset($_POST["recherche"])){ // si le formulaire a été posté if (isset($_POST["mot_recherche"])){ $_SESSION["recherche"]["mot"] = trim($_POST["mot_recherche"]); } if (isset($_POST["type_recherche"])){ $_SESSION["recherche"]["type"] = trim($_POST["type_recherche"]); } } // ------------------------ // Création de la requête switch (($_SESSION["recherche"]["type"])) { case 'codeDepartement': // contient le mot ...$mot_recherche... // IMPORTANT => mysql_real_escape_string(...) pour PROTEGER des injections SQL !! $clauseWhere = " WHERE codeDepartement LIKE '%" . mysql_real_escape_string($_SESSION['recherche']['mot']) . "%' "; $retour_total_query = "SELECT count(ID_gite) AS total FROM GITE g JOIN AS_COMMU_DEPAR acd ON g.ID_commune = acd.COMMUNE_ID_commune JOIN DEPARTEMENT d ON d.ID_departement = acd.DEPARTEMENT_ID_departement $clauseWhere "; //$clauseWhere; // Critères de recherche $retour_total = mysql_query($retour_total_query) or die(mysql_error()); $donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau. $total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total. echo '====='; echo $retour_total; print_r($retour_total); var_dump($retour_total); echo '====='; echo $donnees_total; echo '====='; // ----------------------- // Pagination $messagesParPage = 5; // Nous allons afficher 2 messages par page. //Nous allons maintenant compter le nombre de pages. $nombreDePages = ceil($total/$messagesParPage); // ------------------------ // Récupération du numéro de page if(isset($_GET['page'])) // Si la variable $_GET['page'] existe... { $pageActuelle = intval($_GET['page']); // Récupération via URL if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle = $nombreDePages; } } else { // Sinon $pageActuelle = 1; // La page actuelle est la n°1 } $premiereEntree = ($pageActuelle-1)*$messagesParPage; // On calcule la première entrée à lire mysql_query("SET NAMES 'utf8'"); $retour_messages_query = "SELECT g.numGite, c.codeCommune FROM GITE g, DEPARTEMENT d, COMMUNE c, AS_COMMU_DEPAR acd $clauseWhere AND g.ID_commune = c.ID_commune and d.ID_departement = acd.DEPARTEMENT_ID_departement and c.ID_commune = acd.COMMUNE_ID_commune ". //$clauseWhere; // Critères de recherche " ORDER BY numGite ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination*/ $retour_messages = mysql_query($retour_messages_query); echo '+++++'; echo $retour_messages; print_r($retour_messages); var_dump($retour_messages); echo '+++++'; $commune_query = "SELECT codeCommune AS commune FROM COMMUNE c JOIN GITE g ON g.numGite = '". $retour_messages ."' "; $retour_commune = mysql_query($commune_query) or die(mysql_error()); $commune_total = mysql_fetch_assoc($retour_commune); //On range retour sous la forme d'un tableau. $commune = $commune_total['commune']; //On récupère le total pour le placer dans la variable $total. echo '&&&&&&'; echo $retour_commune; echo $commune_total; echo $commune; var_dump($commune_total); var_dump($commune); echo '&&&&&&'; break; case 'nomCommune': // [......] $clauseWhere = " WHERE nomCommune LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' "; $retour_total_query = "SELECT count(ID_gite) AS total FROM GITE g JOIN COMMUNE c ON g.ID_commune = c.ID_commune $clauseWhere "; //$clauseWhere; // Critères de recherche $retour_total = mysql_query($retour_total_query) or die (mysql_error()); $donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau. $total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total. // ------------------------ // Pagination $messagesParPage = 3; // Nous allons afficher 2 messages par page. //Nous allons maintenant compter le nombre de pages. $nombreDePages = ceil($total/$messagesParPage); // ------------------------ // Récupération du numéro de page if(isset($_GET['page'])) // Si la variable $_GET['page'] existe... { $pageActuelle = intval($_GET['page']); // Récupération via URL if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle = $nombreDePages; } } else { // Sinon $pageActuelle = 1; // La page actuelle est la n°1 } $premiereEntree = ($pageActuelle-1)*$messagesParPage; // On calcule la première entrée à lire mysql_query("SET NAMES 'utf8'"); $retour_messages_query = "SELECT g.numGite, c.codeCommune FROM GITE g, COMMUNE c WHERE g.ID_commune = c.ID_commune $clauseWhere ". //$clauseWhere. // Critères de recherche " ORDER BY numGite ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination*/ $retour_messages = mysql_query($retour_messages_query); break; case 'natureRoche': // [......] $clauseWhere = " WHERE natureRoche LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' "; $retour_total_query = "SELECT count(ID_gite) AS total FROM GITE g JOIN AS_GITE_ROCHE agr ON g.ID_gite = agr.GITE_ID_gite JOIN ROCHE r ON agr.ROCHE_ID_roche = r.ID_roche $clauseWhere "; //$clauseWhere; // Critères de recherche $retour_total = mysql_query($retour_total_query) or die (mysql_error()); $donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau. $total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total. // ------------------------ // Pagination $messagesParPage = 3; // Nous allons afficher 2 messages par page. //Nous allons maintenant compter le nombre de pages. $nombreDePages = ceil($total/$messagesParPage); // ------------------------ // Récupération du numéro de page if(isset($_GET['page'])) // Si la variable $_GET['page'] existe... { $pageActuelle = intval($_GET['page']); // Récupération via URL if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle = $nombreDePages; } } else { // Sinon $pageActuelle = 1; // La page actuelle est la n°1 } $premiereEntree = ($pageActuelle-1)*$messagesParPage; // On calcule la première entrée à lire mysql_query("SET NAMES 'utf8'"); $retour_messages_query = "SELECT g.numGite FROM GITE g JOIN AS_GITE_ROCHE agr ON g.ID_gite = agr.GITE_ID_gite JOIN ROCHE r ON agr.ROCHE_ID_roche = r.ID_roche $clauseWhere ". //$clauseWhere. // Critères de recherche " ORDER BY numGite ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination $retour_messages = mysql_query($retour_messages_query); break; case 'nomEtage': // [......] $clauseWhere = " WHERE nomEtage LIKE '%".mysql_real_escape_string($_SESSION['recherche']['mot'])."%' "; $retour_total_query = "SELECT count(ID_gite) AS total FROM GITE g JOIN AS_GITE_ETAGE age ON g.ID_gite = age.GITE_ID_gite JOIN ETAGE e ON age.ETAGE_ID_etage = e.ID_etage ". $clauseWhere; // Critères de recherche $retour_total = mysql_query($retour_total_query) or die (mysql_error()); $donnees_total = mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau. $total = $donnees_total['total']; //On récupère le total pour le placer dans la variable $total. // ------------------------ // Pagination $messagesParPage = 3; // Nous allons afficher 2 messages par page. //Nous allons maintenant compter le nombre de pages. $nombreDePages = ceil($total/$messagesParPage); // ------------------------ // Récupération du numéro de page if(isset($_GET['page'])) // Si la variable $_GET['page'] existe... { $pageActuelle = intval($_GET['page']); // Récupération via URL if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle = $nombreDePages; } } else { // Sinon $pageActuelle = 1; // La page actuelle est la n°1 } $premiereEntree = ($pageActuelle-1)*$messagesParPage; // On calcule la première entrée à lire mysql_query("SET NAMES 'utf8'"); $retour_messages_query = "SELECT g.numGite FROM GITE g JOIN AS_GITE_ETAGE age ON g.ID_gite = age.GITE_ID_gite JOIN ETAGE e ON age.ETAGE_ID_etage = e.ID_etage ". $clauseWhere. // Critères de recherche " ORDER BY numGite ASC LIMIT ".$premiereEntree.", ".$messagesParPage." "; // Pagination $retour_messages = mysql_query($retour_messages_query); break; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="../lith_css/lith_style_form_rech.css" /> <title>Lithothèque, résultat d'une recherche</title> </head> <body> <?php include("lith_entete_form.php");?> <p class="titre_form">Résultat de votre recherche</p> <span class="centre"><p>Pour le terme recherché : <span class="vert_gras"><?php echo $_SESSION['recherche']['mot']; ?></span>, il y a <span class="vert_gras"><?php echo $total; ?></span> enregistrement<?php if($total>1){ echo 's'; } ?> dans la Lithothèque.</p></span> <?php if($total) { // début du tableau echo '<table id=table1>'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<th>Numéros des gîtes</th>'; //echo '<th>Nature des gîtes</th>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 1 colonne, 1 résultat par ligne. while($donnees_messages = mysql_fetch_array($retour_messages)) { echo '<tr>'; echo '<td ><a href="../lith_page_gite.php?page_gite='. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . '"> '. $donnees_messages['codeCommune'] . ' ' . $donnees_messages['numGite'] . ' </a></td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. } else echo 'Il n\'y a pas encore d\'enregistrement dans la Lithothèque correspondant au terme de votre recherche.'; // ------------------------ // Affichage de la PAGINATION echo '<p style="text-align:center;">Page(s) : '; //Pour l'affichage, on centre la liste des pages for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle { //On va faire notre condition if($i==$pageActuelle) //Si il s'agit de la page actuelle... { echo ' [ '.$i.' ] '; } else { //Sinon... echo ' <a href="lith_traitement_form_rech.php?page='.$i.'">'.$i.'</a> '; } } echo '</p>'; echo '!!!!!!!!!!'; echo $donnees_messages["codeCommune"]; echo '!!!!!!!!!!'; echo $numGite; echo $codeCommune; echo $donnees_messages['numGite']; ?> <IMG SRC="../lith_images/puce_biface.png"> <a href="../lith_acces/lith_acces.php">Retour accueil Lithothèque</a> <br /><br /> <?php include("lith_pied_page_form_rech.php"); ?> </body> </html>
Page d'affichage des détails concernant le gîte (en cours de correction) :<?php session_start(); // je démarre la session error_reporting(-1); include('lith_structure/sql.php'); // Initialisation des SESSION : si elles n'existent pas, on les crée // ------------------------ // Récupération des données (critères de recherche) via le formulaire if (isset($_GET["page_gite"]) && isset($_POST["numGite"]) && isset($_POST["codeCommune"]) ) { // si le formulaire a été posté $_SESSION["page_gite"] = trim($_GET["page_gite"]); $codeCommune = $_POST["codeCommune"]; $numGite = $_POST["numGite"]; echo '+++++'; echo $numGite; echo $codeCommune; echo '+++++'; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="lith_css/lith_style_page.css" /> <title>Lithothèque, page gîte</title> </head> <body> <?php include("lith_entete.php"); ?> <?php $req = parcoursRS(SQLSelect(" SELECT g.*, p.codePays, p.nomPays, d.codeDepartement, d.nomDepartement, c.nomCommune FROM GITE g, PAYS p, DEPARTEMENT d, COMMUNE c, AS_COMMU_DEPAR acd WHERE g.numGite = '". $_POST['numGite'] ."' and c.codeCommune = '". $_POST['codeCommune'] ."' and g.ID_commune = c.ID_commune and p.ID_pays = c.PAYS_ID_pays and d.ID_departement = acd.DEPARTEMENT_ID_departement and c.ID_commune = acd.COMMUNE_ID_commune ")); foreach ($req as $result) { ?> <p class="titre_form">Page gîte <?php echo "n° : ".$result['codePays']." ".$result['codeDepartement']." ".$_POST['codeCommune']." ".$_POST['numGite']."<br/>";?></p> <?php } ?> <table id="table"> <tr> <td colspan="2"> <titre>Localisation</titre> </td> <td colspan="2"> <titre>Lithothèque</titre> </td> </tr> <?php $req2 = parcoursRS(SQLSelect("SELECT b.numCarteBrgm, b.nomCarteBrgm, b.precisionCarteBrgm, i.numCarteIgn, i.nomCarteIgn, i.precisionCarteIgn FROM CARTE_BRGM b, CARTE_IGN i, GITE g WHERE g.numGite = '" . $_POST["numGite"]. " ' and g.ID_carte_brgm = b.ID_carte_brgm and g.ID_carte_ign = i.ID_carte_ign ")); $idgite = $result['ID_gite']; foreach ($req2 as $cartes) { echo "<tr><td><i>Pays (nom, code) :</i></td><td>".$result['nomPays']." ".$result['codePays'],"</td><td><i>Date création fiche : </i></td><td>".$result['dateCreaFicheG'],"</td></tr>"; echo "<tr><td><i>Département (idem) :</i></td><td>".$result['nomDepartement']." ".$result['codeDepartement'],"</td><td><i>Auteur création : </i><td>".$result['nomCreaFicheG'],"</td></tr>"; echo "<tr><td><i>Commune (idem) :</i></td><td>".$result['nomCommune']." ".$result['codeCommune'],"</td><td><i>Date dernière modification : </i><td>".$result['dateModifFicheG']."</td></tr>"; echo "<tr><td><i>Carte BRGM (nom, n°, précision) :</i></td><td>".$cartes['nomCarteBrgm']." ".$cartes['numCarteBrgm']." ".$cartes['precisionCarteBrgm'],"</td><td><i>Auteur modification : </i><td>".$result['nomModifFicheG'],"</td></tr>"; echo "<tr><td><i>Carte IGN (idem) :</i></td><td>".$cartes['nomCarteIgn']." ".$cartes['numCarteIgn']." ".$cartes['precisionCarteIgn'],"</td><td><i>Date dernière saisie : </i><td>".$result['dateSaisieFicheG']."</td></tr>"; echo "<tr><td><i>Carte IGN (idem) :</i></td><td>".$cartes['nomCarteIgn']." ".$cartes['numCarteIgn']." ".$cartes['precisionCarteIgn'],"</td><td><i>Auteur dernière saisie : </i><td>".$result['nomSaisieFicheG']."</td></tr>"; } ?> <div align="center"> <table id="table_coordonnees"> <caption>Coordonnées  </caption> <tr> <th>Points</th> <th>Altitude</th> <th>X</th> <th>Y</th> <th>Longitude</th> <th>Latitude</th> </tr> <tr> <td>1</td> <td><input type="text" name="altitudeGite1" size="10" maxlength="10"/></td> <td><input type="text" name="corX1Gite" size="10" maxlength="10"/></td> <td><input type="text" name="corY1Gite" size="10" maxlength="10"/></td> <td><input type="text" name="longitudeGite1" size="10" maxlength="10"/></td> <td><input type="text" name="latitudeGite1" size="10" maxlength="10"/></td> </tr> <tr> <td>2</td> <td><input type="text" name="altitudeGite2" size="10" maxlength="10"/></td> <td><input type="text" name="corX2Gite" size="10" maxlength="10"/></td> <td><input type="text" name="corY2Gite" size="10" maxlength="10"/></td> <td><input type="text" name="longitudeGite2" size="10" maxlength="10"/></td> <td><input type="text" name="latitudeGite2" size="10" maxlength="10"/></td> </tr> <tr> <td>3</td> <td><input type="text" name="altitudeGite3" size="10" maxlength="10"/></td> <td><input type="text" name="corX3Gite" size="10" maxlength="10"/></td> <td><input type="text" name="corY3Gite" size="10" maxlength="10"/></td> <td><input type="text" name="longitudeGite3" size="10" maxlength="10"/></td> <td><input type="text" name="latitudeGite3" size="10" maxlength="10"/></td> </tr> <tr> <td>4</td> <td><input type="text" name="altitudeGite4" size="10" maxlength="10"/></td> <td><input type="text" name="corX4Gite" size="10" maxlength="10"/></td> <td><input type="text" name="corY4Gite" size="10" maxlength="10"/></td> <td><input type="text" name="longitudeGite4" size="10" maxlength="10"/></td> <td><input type="text" name="latitudeGite4" size="10" maxlength="10"/></td> </tr> </table> </div> </table> <table id="table"> <tr> <td colspan="4"> <br/><titre>Gîte</titre><br/><br/></td></tr> <?php $req5 = parcoursRS(SQLSelect(" SELECT e.nomEtage, e.ageEtage, e.ereEtage, e.periodeEtage, age.precisionAgeEtage from ETAGE e, AS_GITE_ETAGE age WHERE e.ID_etage = age.ETAGE_ID_etage and $idgite = age.GITE_ID_gite ")); foreach ($req5 as $etage) { echo "<tr><td><i>Année de découverte : </i></td><td>".$result['anneeDecouverteG'],"</td><td></td><td></td></tr>"; echo "<tr><td><i>Type de gîte : </i></td><td>".$result['typeGite'],"</td><td><i>Nature du gîte : </i></td><td>".$result['natureGite'],"</td></tr>"; echo "<tr><td><i>Etage : </i></td><td>".$etage['nomEtage'],"</td><td><i>Datation étage : </i></td><td>".$etage['dateEtage'],"</td></tr>"; echo "<tr><td><i>Précision étage : </i></td><td colspan=3>".$etage['precisionAgeEtage'],"</td></tr>"; } $req6 = parcoursRS(SQLSelect(" SELECT r.natureRoche from ROCHE r, AS_GITE_ROCHE agr WHERE $idgite = agr.GITE_ID_gite and r.ID_roche = agr.ROCHE_ID_ROCHE ")); foreach ($req6 as $roche) { echo "<tr><td><i>Nature roche : </i></td><td>".$roche['natureRoche'],"</td><td></td><td></td></tr>"; } $req7 = parcoursRS(SQLSelect(" SELECT m.nomMilieu from MILIEU_FORMATION m, AS_MILIEU_FORMA_GITE amfg WHERE $idgite = amfg.GITE_ID_gite and m.ID_milieu = amfg.MILIEU_FORMATION_ID_milieu ")); foreach ($req7 as $milieu) { echo "<tr><td><i>Milieu de formation : </i></td><td colspan=3>".$milieu['nomMilieu'],"</td></tr>"; echo "<tr><td><i>Description du matériau in situ : </i></td><td colspan=3>".$result['materiau'],"</td></tr>"; echo "<tr><td><i>Géomorphologie : </i></td><td colspan=3>".$result['geomorphologie'],"</td></tr>"; echo "<tr><td><i>Nom générique : </i></td><td colspan=3>".$result['nomGenerique'],"</td></tr>"; echo "<tr><td><i>Description du gîte : </i></td><td colspan=3>".$result['descriptionGite'],"<br /><br /></td></tr>"; } ?> <tr> <td colspan="4"> <titre>Programme et prospection</titre><br /><br /></td></tr> <?php echo "<tr><td><i>Nom du programme : </i></td><td colspan=3>Programme ANR 2012-2015 Prospections archéologiques du Massif des Alpilles</td></tr>"; echo "<tr><td><i>Responsable(s) : </i></td><td colspan=3></td></tr>"; echo "<tr><td><i>Description : </i></td><td colspan=3><br /><br /></td></tr>"; echo "<tr><td><i>Nom de la prospection : </i></td><td colspan=3></td></tr>"; echo "<tr><td><i>Responsable(s) : </i></td><td colspan=3></td></tr>"; echo "<tr><td><i>Prospecteur : </i></td><td colspan=3></td></tr>"; echo "<tr><td><i>Description : </i></td><td colspan=3></td></tr>"; echo "<tr><td><i>Zone géographique : </i></td><td colspan=3><br /><br /></td></tr>"; ?> <tr> <td colspan="4"> <titre>Bibliographie</titre><br/><br/></td></tr> <?php echo "<tr><td><i>Références abrégées (cliquables si pdf à télécharger) : ex. Servelle C., 2001b</i></td><td colspan=3>SCHLEIERMACHER, Friedrich Daniel Ernst. <i>Herméneutique.</i> Traduit de l'allemand par Christian Berner. Paris : Editions du Cerf ; Québec : Presses de l'Université Laval, 1987, XVIII-202 p. Collection Passages.<i>Herméneutique.</i> Traduit de l'allemand par Christian Berner. Paris : Editions du Cerf ; Québec : Presses de l'Université Laval, 1987, XVIII-202 p. Collection Passages.<br /><br /></td></tr>"; ?> <tr> <td colspan="4"> <titre>Echantillons prélevés</titre><br/><br/></td></tr> <tr> <td colspan="4"> <?php $req4 = parcoursRS(SQLSelect("SELECT numEchantillon from ECHANTILLON e, GITE g WHERE g.numGite = '" . $_SESSION["numGite"]. " ' and g.ID_gite = e.GITE_ID_gite1 ")); foreach ($req4 as $echantillons) { echo '<a href="lith_page_echantillon.php?numEchantillon=' . $echantillons['numEchantillon'] . '"> n°' . $echantillons['numEchantillon'] . ',</a>'; } ?> <br/><br/></td></tr> <tr> <td colspan="4"> <titre>Photographies</titre><br/><br/></td></tr> <tr> <td colspan="4"> <?php $req3 = parcoursRS(SQLSelect(" SELECT nomPhotoG from PHOTO_GITE WHERE nomPhotoG LIKE '%".$_SESSION["numGite"]."%' ")); foreach ($req3 as $photos) { // début du tableau //echo '<table>'."\n"; //echo '<tr>'."\n"; //echo "<td>{$photos['nomPhotoG']}</td>"; echo '<a href="lith_page_photoG.php?nomPhotoG=' . $photos['nomPhotoG'] . '"><img src="lith_images/lith_images_gite/mini_' . $photos['nomPhotoG'] . '"/></a>  '; //echo '</tr>'."\n"; //echo '</table>'."\n"; } $_SESSION['codePays'] = $result['codePays']; $_SESSION['codeDepartement'] = $result['codeDepartement']; $_SESSION['codeCommune'] = $result['codeCommune']; ?> <br /><br /></td></tr> </table> <br /><table id="table"> <tr> <td><IMG SRC="lith_images/puce_biface.png"> <a href="lith_acces/lith_acces.php">Retour accueil Lithothèque</a></td> <td><IMG SRC="lith_images/puce_biface.png"> <a href="lith_form_modif_gite.php">Modifier les données de ce gîte</a></td> <td><IMG SRC="lith_images/puce_biface.png"> <a href="lith_form_modif_gite.php">Supprimer ce gîte de la Lithothèque</a></td> </tr></table><br /> </div> <?php include("lith_pied_page.php"); ?> </body> </html> -
Oui et non ! Le formulaire de recherche présente une liste déroulante pour choisir le type de recherche (département, commune...) puis une zone de texte où l'utilisateur saisi le terme qu'il souhaite rechercher (n° de département, nom de commune...).
De mon côté, j'imprime pour y voir plus clair. Ne t'embête pas trop.
Merci,
Evelyne -
et voici le screen du résultat d'une recherche pour le département 31 par ex.
On a (liens cliquables) le n° de la commune, par ex 0282 puis à côté le n° du gîte, 001
http://img836.imageshack.us/img836/6443/listeresultatsrecherche.png
Encore merci,
Evelyne -
Pour les 4 menus déroulants, je ne l'ai pas fait car par la suite les recherches vont se complexifier avec et/ou/sauf...
Mon site est en local pour le moment.
Ne te prends pas trop la tête. Je cherche de mon côté...
Evelyne -
Mais c'est super que tu t'intéresses à ce site !
Ce sont uniquement les recherches qui vont se complexifier à plus ou moins long terme.
A terme, il y aura beaucoup de gîtes pour 3 pays (France, Espagne, Italie). Il faut que je prévois de suite des recherches par ex. sur un département, rechercher tous les gîtes qui ont du silex et qui appartiennent à l'ère géologique "Mézozoïque" mais pas à l'étage "Atlantique"... .
Avec mes remerciements pour ton aide, je t'envoie le MCD de suite.
Evelyne -
Voici les liens pour les MCD :
- AnalyseSI : http://img834.imageshack.us/img834/2387/mcd20130304.png
- Workbench : http://img443.imageshack.us/img443/3320/lithothequewb05032013.png
Je travaille toujours avec les 2, chacun a ses avantages.
Ca fait un semaine que je suis sur ce formulaire de recherche, alors le terminer en 2h ça m'étonnerait !!! ;-) Je ne suis pas pro. et j'ai un mal fou avec le PHP.
Si tu as un tout petit peu de temps, peux-tu, STP, juste me dire comment tu aborderais les choses. Je vois bien des menus déroulants pour une recherche simple mais pas pour une recherche complexe, il me semble que les menus déroulants vont m'embrouiller ??? Merci.
Evelyne -
Quand tu parles de menu déroulants c'est des listes déroualnte simple ?
Bon c'est vrai que 2h je minimise peut-être le truc. Surtout après avoir vu tes MCD ^^ je m'attendais vrm pas a ça.
Juste une petite question a par atuelement je suis en cours donc un peu bloquer pour regarder tes code et te chercher des solutions claire et précise mais se soir vers 17h je serai de retour chez moi donc a se moment je veux bien te faire une explication complète.
Donc je ne sais pas si tu fais cela dans le cadre du privé ou si tu fait cela au travaille -
Sur le formulaire de recherche, pour le moment, j'ai un déroulant simple avec 4 possibilités :
- type de recherche : par n° de département,
- type de recherche : par nom de commune,
- type de recherche : par nature de roche,
- type de recherche : par étage géologique.
Ensuite il y a une petite zone de texte où l'utilisateur tape le terme recherché.
Mais, si tu me conseilles de mettre des menus déroulants, je peux mettre un déroulant imbriqué pour Pays/Département/Commune car j'ai le code tout prêt, je l'ai utilisé dans un formulaire d'insertion de gîtes dans la bdd.
Par contre pour les roches et les étages ce sont des déroulants simples.
Je ne veux surtout pas te distraire pendant tes cours. Je fais ce site dans le cadre de mon travail. Je suis en reconversion depuis 1 an 1/2 mais je n'ai eu aucune formation.
Je galère beaucoup mais ça me passionne. Je m'appuie beaucoup sur les forums dont je trouve l'esprit très sympa.
Très loin de moi l'idée de faire faire mon boulot à d'autres. Je cherche juste des conseils, une façon de faire car c'est vraiment ce qui me manque : la façon de raisonner en informaticien, de concevoir clairement et simplement.
Là je reprends tes conseils et j'essaie de faire quelque chose qui tienne la route. Encore un très grand merci. Je te tiens au courant ce soir d'où j'en suis.
Bon cours et très bonne journée,
Evelyne
- 1
- 2
Suivant