Affichage conditionnel avec les sessions

Résolu
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009 - 5 janv. 2008 à 01:50
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009 - 5 janv. 2008 à 21:40
Salut à tous!

Je suis en train de faire un petit site marchand et en ce moment je suis sur les sessions.mon pb est que j'ai une table commande_fournisseur (table remplie par le webmaster du site pour enregistrer toutes les commandes passées vers les fournisseurs) et j'aimerais que lorsque le fournisseur se connecte sur le site (il possède un login et un mot de passe) et une fois dans son espace à lui,qu'il puisse voir si le webmaster a enregistré une commande à son nom.Donc ce qui veut dire,si une commande est par exple enregistrée au nom de "toto",et si ce dernier se connecte il pouura afficher toutes les commandes en son nom,mais si un autre se connecte et n'a pas de commande enregistrée en som nom,alors on lui affiche que la table est vide.

La table commande_fournisseur possede un champ nom fournisseur et ce meme nom est aussi présent dans la table fournisseur.

Voila lorsque je fais ma requete sql,il m'affiche une erreur. je vous donne le code pour voir ce qui ne vas pas!Merci d'avance pour votre aide:

<?php
session_start(); // on relaye la session session
?>

<?php require_once('connexion.php'); ?>

<?php

if (session_is_registered("authentification") && $_SESSION['privilege'] == "four"){ // vérification sur la session authentification (la session est elle enregistrée ?)
// On vérifie également si la session ouverte est bien une session admin et on place ici les éventuelles actions en cas de réussite de la connexion
}
else {
//header("Location:index.php?erreur=intru"); // redirection en cas d'echec

  redirection("connectfour.php?erreur=intru");
}

?>

<?php
    
$hostname = 'localhost';
$username = 'root';
$password = '';
$database = 'magasin';

// connection à la DB

$link = mysql_connect ($hostname,$username,$password) or die ('Erreur : '.mysql_error() );
mysql_select_db($database) or die ('Erreur :'.mysql_error());

$nom = $_SESSION['nom'];

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT * from cde_four where nom=$nom';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
    echo ''.\"\n\";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '----
';
        echo 'Numero Commande, ';
        echo 'Nom Fournisseur, ';
        echo 'Désignation, ';
        echo 'Quantité Commandée, ';
        echo 'Date de Commande, ' ;
        echo ''.\"\n\";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.   
    while($row = mysql_fetch_array($result)) {
        echo '----
';
        echo ''.$row["num_commande"].', ';
        echo ''.$row["nom"].', ';
        echo ''.$row["designation"].', ';
        echo ''.$row["qte"].', ';
        echo ''.$row["date_cde"].', ';
        echo ''.\"\n\";
    }
    echo '
'."\n";
    echo '<center>[javascript:history.go(-1) Retour]<center>';
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>
Je vous signale que la variable $_session['nom'] a été enregistrée losrque le fournisseur se connecte dans son espace perso.

Merci encore pour votre contribution!!!!

5 réponses

gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
5 janv. 2008 à 14:24
Tu peux mettre le message d'erreur qui t'es affiché ?

Concernant cette requête :

$select = 'SELECT * from cde_four where nom=$nom';

si le champ 'nom' est une chaine de caractère fait plutôt quelque chose comme ça :

$select = "SELECT * from cde_four where nom LIKE '".$nom."'";

Pour les chaines, il faut les entourer de ' sinon tu risque d'avoir des erreurs.

Grrrrrrrrrrr
3
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009
5 janv. 2008 à 14:54
salut!
merci pour l'aide,je vais le tester bientot!l'erreur kil m'affiche,il met $nom non reconnu dans la clause where.
Dès que je fini le test,je te fais signe!merci encore
0
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
5 janv. 2008 à 15:05
Si tu dois insèrer une variable dans une chaine (comme pour ta requête), utilise l'opératuer . (point), ça évite les erreurs.

Grrrrrrrrrrr
0
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009
5 janv. 2008 à 20:30
salut!
jè testé ta méthode,le code en lui meme est bon mais le pb c'est que quelque soit le fournisseur qui se connecte il m'affiche "pas d'enregistrement dans la table"

alors je ne sais plus koi faire!!

merci pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rudybiss Messages postés 60 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 20 juillet 2009
5 janv. 2008 à 21:40
salut
après multiples tests et jonglages,eh ben tout marche très bien!merci bcp pour ton aide et à bientot!
0
Rejoignez-nous