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

Langage PHP Discussion :

Session php problème récupération


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut Session php problème récupération
    Bonjour,
    Je suis en train de développer un site d'agence immobilière.
    Sur l'onglet les offres je peux visionner toutes les offres.
    Le seul souci c'est que chaque maison possède un lien "Lire la suite".
    Donc je voudrais que pour chaque maison s'affiche la description correspondante.
    Voici mon code : (pour l'affichage des maisons)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    $select = 'select maison.NumeroMaison,VilleMaison, PrixMaison, Photo1 FROM maison, maison_photo WHERE maison.NumeroMaison = maison_photo.NumeroMaison ORDER BY VilleMaison ASC limit '.$limite.','.$nombre;
    $result = mysql_query($select)  or die ('Erreur : '.mysql_error() );
     
    //=========================================    
    // si on a récupéré un resultat on l'affiche.
    //=========================================
    if($total) {
        // début du tableau
     
        echo '<table border = "0" >'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
          //  echo '<td><b><u>Ville</u></b></td>';
    		echo '</tr>'."\n";
        //    echo '<td><b><u>Prix</u></b></td>';
    	//	echo '<td><b><u>Image</u></b></td>';
     
        // lecture et affichage des résultats sur 2 colonnes    
        while($row = mysql_fetch_array($result)) {
    		$_SESSION['numeromaison'] = $row[0];
            echo '<tr>';
          //  echo '<td>'.$row['VilleMaison'].'</td>';
           // echo '<td>'.$row['PrixMaison'].'</td>';
    		echo '<td><img border=2 width = "200px"  align ="middle" src="photos/maison/'.$row[3].'"</td>';
    		echo '<td>'.$row[0].'</td>';
    		echo '<td><a href="affiche-suite-maison.php"></a></td>'
            echo '</tr>'."\n"; 
    		echo '</table>'."\n";
     
     
    		?>
    </div>
    <div>
    <?php
     
    		echo '<table border = "0" >'."\n";
            // première ligne on affiche les titres prénom et surnom dans 2 colonnes
            echo '<tr>';
    	//	echo '<td><b><u>Ville</u></b></td>';
    	//	echo '<td><b><u>Prix</u></b></td>';
    		echo '<td>'.$row[1].'</td>';
           echo '<td>'.$row[2].'</td>';
    	   echo '</table>'."\n";
     
        }
    Voici mon code quand je clique sur Lire la suite :
    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
     
    <?php
    session_start();
    include ('connexion.php');
    include ('index.php');
     
     
    $numero_maison = $_SESSION['numeromaison'];
    		$result=mysql_query("SELECT DescriptionMaison FROM maison WHERE NumeroMaison = '".$numero_maison."'");
    	    while($row = mysql_fetch_array($result))
    		{
     
    			echo $row[0];
     
    		}
    		?>
    Le problème est qu'il récupère toujours la même description, ce qui est logique puisque il prend la derniere valeur.
    Mais comment régler ce problème, pour qu'il transfère sur la page le bon numéro de maison.
    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Hello,
    Rien à voir avec les sessions !!
    Il faut transmettre à affiche-suite-maison.php l'identifiant de la maison (maison.NumeroMaison) puis le traiter.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="affiche-suite-maison.php?id=<?php echo $row[0] ?>">Lire la suite</a>
    Ensuite dans affiche-suite-maison.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'SELECT DescriptionMaison '
         . 'FROM maison '
         . 'WHERE NumeroMaison = ' . mysql_real_escape_string($_GET['id']) ;
    $result=mysql_query($sql) or exit($sql . '<br>' . mysql_error( )) ;

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Pourquoi une session ? Envoi le numéro de la maison par l'URL, récupère-le par $_GET et le tour est joué

  4. #4
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Merci pour vos réponses si rapide
    J'ai donc mis à jour mon code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		echo '<td><a href="affiche-suite-maison.php?id=<?php $row[0] ?>">Lire la suite</a></td>';
    pour ce qui est de ma page affiche-suite-maison.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $requete = 'SELECT DescriptionMaison FROM maison WHERE NumeroMaison = ' . mysql_real_escape_string($_GET['id']) ;
     
     
    $result=mysql_query($requete) or exit($requete . '<br>' . mysql_error( )) ;
    	    while($row = mysql_fetch_array($result))
    		{
    			echo $row[0];
     
    		}
    		?>
     
     
    Au risque de paraitre un peu bête, voici mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DescriptionMaison FROM maison WHERE NumeroMaison = 
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    Je n'ai jamais vu auparavant le mysql_real_escape

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Meloooo Voir le message
    Au risque de paraitre un peu bête, voici mon erreur : [/CODE]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DescriptionMaison FROM maison WHERE NumeroMaison = 
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    L'identifiant n'est pas passé, le vois-tu dans la barre d'adresse du navigateur ?

    Je n'ai jamais vu auparavant le mysql_real_escape
    http://fr.php.net/mysql-real-escape-string

  6. #6
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Non je ne le vois pas
    Voici ce que je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    http://localhost/GALERIE/affiche-suite-maison.php?id=<?php%20$row[0]%20?>
    Merci pour le lien ca ma permis de savoir à quoi correspondait le mysql_real_escape ca permet la protection de mes données.
    Merci pour vos réponses vraiment rapide Séb.

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par Meloooo Voir le message
    Non je ne le vois pas
    Voici ce que je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    http://localhost/GALERIE/affiche-suite-maison.php?id=<?php%20$row[0]%20?>
    OK, le PHP n'est pas interprété, et effectivement, plus haut je vois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><a href="affiche-suite-maison.php?id=<?php $row[0] ?>">Lire la suite</a></td>';
    Si tu es partisan du tout PHP il faudrait faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td><a href='affiche-suite-maison.php?id=$row[0]'>Lire la suite</a></td>";

  8. #8
    Membre actif Avatar de Meloooo
    Femme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2008
    Messages : 324
    Points : 288
    Points
    288
    Par défaut
    Ah oui quelle idiote
    Ca marche très bien, je vous remercie pour vos réponses clair net et précise en l'espace de 5 minutes.

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 210
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 210
    Points : 8 437
    Points
    8 437
    Billets dans le blog
    17
    Par défaut
    De rien, bon dév

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

Discussions similaires

  1. [AJAX] AJAX & Session php problème.
    Par prosciuto dans le forum AJAX
    Réponses: 9
    Dernier message: 09/04/2009, 12h17
  2. PHP problème de session
    Par Pfeffer dans le forum Langage
    Réponses: 24
    Dernier message: 29/04/2006, 10h37
  3. Réponses: 7
    Dernier message: 23/04/2006, 01h38
  4. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 17h32
  5. Réponses: 1
    Dernier message: 12/09/2005, 11h28

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