Php mysql select par utilisateur session

Résolu
tony82800 Messages postés 67 Statut Membre -  
tony82800 Messages postés 67 Statut Membre -
Bonjour,

je vous explique mon probleme , voici le code :

<?php
session_start();
$id = $_SESSION['login'];
if (!isset($_SESSION['login'])) {
header ('Location: news.php');
exit();
}
?>
<?php

$base = mysql_connect ('****', '*****', '*****');
mysql_select_db ('*****', $base);

$requete=mysql_query("SELECT panier FROM membre WHERE '$id' ");

$data = mysql_fetch_array($requete);

echo ' <i>Votre panier : '.$data['panier'].'</i><br>';
echo $id;

mysql_close();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Votre panier</title>
</head>
<body>

</body>
</html>

voila je voudrais renvoyer a l'ecran la valeur de "panier" dans la table membre

et seulement la valeur de l'utilisateur connecter.

car en mettant seulement

$requete=mysql_query("SELECT panier FROM membre ");

la valeur du panier n'affiche pas la valeur du membre connecter actuellement

donc je pence qu'il faut faire avec WHERE $_SESSION['id']; mais je ne parvient pas a le faire.

je precise ma base de données

id (auto inc),login,mdp,panier

3 réponses

  1. Caligros
     
    Je pense qu'il y a une confusion dans tes variables
    $id = $_SESSION['login'];
    j'aurai plutôt mis :
    $login = $_SESSION['login'];
    ...
    ... SELECT panier FROM membre WHERE login = '$login' AND id = $id; ...

    mais à priori tu ne récupères pas l'id donc tu risques d'être confronter à un problème où les utilsateurs ont le même login sauf si tu gères dans ta base l'unicité de login câd deux personnes ne peuvent pas avoir le même identifiant et dans ce cas tu peux faire un simple:
    SELECT panier FROM membre WHERE login = '$login';
    1
  2. tony82800 Messages postés 67 Statut Membre 27
     
    merci pour ta réponce mais ne marche pas.

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /public_html/panier.php on line 21

    Votre panier :

    je met le php de ma page news :

    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

    $base = mysql_connect ('s**t', '****', '*****');
    mysql_select_db ('****', $base);

    // on teste si une entrée de la base contient ce couple login / pass
    $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);

    mysql_free_result($req);
    mysql_close();

    // si on obtient une réponse, alors l'utilisateur est un membre
    if ($data[0] == 1) {
    session_start();
    $_SESSION['login'] = $_POST['login'];
    header('Location: membre.php');
    exit();
    }
    // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
    elseif ($data[0] == 0) {
    $erreur = 'Compte non reconnu.';
    }
    // sinon, alors la, il y a un gros problème :)
    else {
    $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
    }
    }
    else {
    $erreur = 'Au moins un des champs est vide.';
    }
    }
    ?>


    peut etre avec quelque chose du genre

    'SELECT panier FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';

    ?
    0
  3. tony82800 Messages postés 67 Statut Membre 27
     
    RESOLU


    $login = $_SESSION['login'];

    $requete=mysql_query("SELECT panier FROM membre WHERE login = '$login'");


    merci bien :)
    0