Transmission numéros par SESSION et requête SQL

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 :
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. 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 ?
    1
    1. 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?
      1
      1. Ou même un screen de ton résultat que je puisse comprendre parce que je me suis perdu dans ton code!
        1
        1. 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 ).
          1
          1. 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 ?
            1
            1. 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.
              1
              1. Ton site est en local ou sur le net ?
                1
                1. 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?
                  1
                  1. 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é .
                    1
                    1. 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
                      0
                      1. 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 un
                        echo $_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
                        0
                        1. 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
                          0
                          1. 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">&nbsp;<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']."&nbsp;".$result['codeDepartement']."&nbsp;".$_POST['codeCommune']."&nbsp;".$_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']."&nbsp;".$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']."&nbsp;".$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']."&nbsp;".$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)&nbsp;:</i></td><td>".$cartes['nomCarteBrgm']."&nbsp;".$cartes['numCarteBrgm']."&nbsp;".$cartes['precisionCarteBrgm'],"</td><td><i>Auteur modification : </i><td>".$result['nomModifFicheG'],"</td></tr>";
                            				
                            		echo "<tr><td><i>Carte IGN (idem)&nbsp;:</i></td><td>".$cartes['nomCarteIgn']."&nbsp;".$cartes['numCarteIgn']."&nbsp;".$cartes['precisionCarteIgn'],"</td><td><i>Date dernière saisie : </i><td>".$result['dateSaisieFicheG']."</td></tr>";
                            		
                            		echo "<tr><td><i>Carte IGN (idem)&nbsp;:</i></td><td>".$cartes['nomCarteIgn']."&nbsp;".$cartes['numCarteIgn']."&nbsp;".$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&nbsp&nbsp</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'] . '">&nbspn°' . $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>&nbsp&nbsp';
                            	//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">&nbsp;&nbsp;<a href="lith_acces/lith_acces.php">Retour accueil Lithothèque</a></td>
                            
                            <td><IMG SRC="lith_images/puce_biface.png">&nbsp;&nbsp; <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">&nbsp;&nbsp; <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>
                            0
                            1. 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
                              0
                              1. 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
                                0
                                1. 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
                                  0
                                  1. 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
                                    0
                                    1. 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
                                      0
                                      1. 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
                                        0
                                        1. 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
                                          0
                                          • 1
                                          • 2