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 :

pb transfert de variable avec SESSIONS [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 210
    Par défaut pb transfert de variable avec SESSIONS
    Bonsoir,
    J'ai un fichier de traitement de formulaire de recherche avec affichage page à page des résultats par SESSIONS (merci J. Réeaux).
    Une boucle WHILE permet un affichage des résultats (numéros de gîtes) sous forme de tableau.
    J'ai mis en place un HREF dans le tableau qui permet en cliquant sur une ligne d'ouvrir une nouvelle page où je souhaiterais afficher toutes les caractéristiques du gîte. La requête SQL ne pose pas de problème mais je ne sais pas comment passer une variable qui serait $numGite dans ma nouvelle page ?
    Ci-dessous des extraits de mon code.
    Un grand merci si vous pouviez juste m'orienter sur la marche à suivre ?
    Evelyne31

    - sessions du fichier de traitement
    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
    <?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"] = '';
    }
    // ------------------------
    // 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"]);
    	}
    }
    ...
    - array où je récupère les numéros de gîtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     while($donnees_messages = mysql_fetch_array($retour_messages)) {
            echo '<tr>';
            echo '<td ><a href="../lith_page_gite.php"</a>'.$donnees_messages['numGite'].'</td>';
            echo '</tr>'."\n";
        }

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    quelque chose dans ce genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        echo 
    <<<HTML
    <tr>
        <td ><a href="lith_page_gite.php?idgite={$donnees_messages['numGite']}"</a></td>
    </tr>
    HTML;
    Avec ce code : tu peux récupérer sur le script lith_page_gite.php l'id du gite visé via $_GET['idgite']

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 210
    Par défaut
    Bonsoir rawsrc,
    Je te remercie pour ta réponse, surtout un dimanche soir !
    J'ai testé ta proposition : page blanche pour la page de traitement du formulaire de recherche !
    En faisant des echos sur la page "page_gite.php" j'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [recherche] => Array ( [mot] => Haute-Garonne [type] => nomDepartement ) [numGite] => )
    = j'ai bien le mot recherché (Haute-Garonne), le type de recherche (nomDepartement), mais numGite est vide. Je ne comprends pas ?
    Je mets ci-dessous le code d'un de mes SELECT (je ne select pas les ID des gîtes mais leurs numGite) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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);

  4. #4
    Membre éclairé Avatar de shell13010
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2008
    Messages : 281
    Par défaut
    Sur ta requête utilise WHERE numGite = ".$idgit." avant ORDER BY....

    et dans ta page lith_page_gite.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $idgit = $_GET['idgite'];
    echo $idgit;
    Un petit HS désoler Evelyne31,

    @rawsrc: Pourquoi utiliser des accolades?

    C'est juste une question pour comprendre

    Car personnellement, je trouve le code plus lisible avec la concaténation tant dis qu'en utilisant cette syntaxe plusieurs fois, ne risquons pas de nous perdre dans notre code?

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 210
    Par défaut
    Bonsoir shell13010,
    Toutes les remarques pour avancer sont les bienvenues !
    A suivre pour les accolades ou la concaténation.
    Merci et bonne soirée,
    Evelyne31

  6. #6
    Membre éclairé Avatar de shell13010
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2008
    Messages : 281
    Par défaut
    Je viens d'éditer, car j'avais pas vue ton nouveau poste...

  7. #7
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 210
    Par défaut
    Bonsoir shell13010,
    J'ai testé ta proposition : plus rien ne s'affiche.
    Il me semble que le problème doit être tout bête, un souci de syntaxe mais je n'arrive pas à trouver.
    Merci en tous cas, je continue à chercher, à +
    Evelyne31

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonsoir,
    Citation Envoyé par shell13010 Voir le message
    @rawsrc: Pourquoi utiliser des accolades?

    C'est juste une question pour comprendre

    Car personnellement, je trouve le code plus lisible avec la concaténation tant dis qu'en utilisant cette syntaxe plusieurs fois, ne risquons pas de nous perdre dans notre code?
    Simple : pour injecter des valeurs dans une syntaxe HEREDOC tu dois obligatoirement utiliser des accolades pour les valeurs issues d'un tableau.

    Ceci ne fonctionnera pas comme attendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        echo 
    <<<HTML
    <tr>
        <td ><a href="lith_page_gite.php?idgite=$donnees_messages['numGite']"</a></td>
    </tr>
     HTML;
    Avec l'expérience je trouve bien plus lisible l'utilisation des syntaxes heredoc et nowdoc à toute autre syntaxe.
    Tu rajoutes à ceci le fait de nommer explicitement tes balises d'initialisation et là c'est le summum. Par ailleurs, je suis contre des echo successif, ça rompt sacrément la lisibilité et peut être source de problèmes avec les différents guillemets...
    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
        $code =
    <<<HTML
     
    HTML;
     
        $sql = 
    <<<SQL
     
    SQL;
     
        $css = 
    <<<CSS
     
    CSS;
     
        $js = 
    <<<JAVASCRIPT
     
    JAVASCRIPT;
    Enfin un IDE comme PHPStorm reconnait les différents langages en ligne et ajuste en conséquence l'autocompletion et la vérification du code...

  9. #9
    Membre éclairé Avatar de shell13010
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2008
    Messages : 281
    Par défaut
    @rawsrc: tu as oublié la fermeture de la balise <a>

    C'est vrai que vue comme sa, sans code niveau structure c'est plus intéressant et plus lisible que des echo, mais sa doit être une question d'habitude.

    D'ailleur j'étais dans un petit délire qui étais d'éffectuer des petits testes de perf et je me suis rendu compte quand utilisant la concaténation c'étais moins rapide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    concatenation : 7.49315500259
    accolade : 6.66299581528
    En tout cas merci pour cette précision.

  10. #10
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 210
    Par défaut
    Bonsoir,
    Je reviens ce soir avec mon problème car il n'est pas résolu. Je me réexplique.
    J'ai un fichier de traitement d'un formulaire de recherche avec SESSIONS qui m'affiche les résultats d'une requête dans un tableau, avec une pagination. Ca marche super bien.
    Ce que je souhaiterais maintenant c'est que dans le tableau des résultats, quand on clique sur un numéro il s'affiche la description complète correspondante sur une nouvelle page.
    Ma nouvelle page s'affiche bien et j'ai testé la requête, tout est OK.
    Ce que je ne comprends pas c'est comment passer les résultats de ce tableau dans la nouvelle page mais ligne par ligne, un n° par n°.
    Je ne sais pas si je suis très claire ? C'est ce qui se fait habituellement ? On a des résultats, on clique et on accède aux détails ?
    En faisant, dans la nouvelle page un echo $_SESSION["numGite"]; j'ai array() vide.
    J'ai testé toutes les solutions proposées hier soir, rien à faire.
    Auriez-vous une piste SVP ? Merci par avance,
    Evelyne31

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Problème de transfert de variable avec Include
    Par samrm111 dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2012, 09h31
  2. Transfert de variables de session
    Par tooorop dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2009, 12h02
  3. Réponses: 1
    Dernier message: 09/03/2007, 18h26
  4. transfert des variables de sessions
    Par Julie 2006 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 26/02/2006, 11h58
  5. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28

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