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 :

[SQL] insert into sql session


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut [SQL] insert into sql session
    Bonjour à tous

    je suis en train de faire un ch'ti site , sécurisé par un password, donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    //début de la session
    session_start() ;
    //enregistrement d'une variable de session, ici le login de l'utilisateur
    $_SESSION["login"] = $login ;
    les utilisateurs peuvent faire differentes commandes, jusque là tout va bien, mais c'est lors de la finalisation de la commande que tout se corse...
    En effet, quand l'utilisateur entre ses coordonnées, les données rentrées remplacent toutes les données des utilisateurs précedents.
    Je n'arrive pas a trouver l'astuce pour limiter les entrées qui ne concernent que les utilisateurs en question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if( isset($_SESSION['login']))
    {
     $sql= "UPDATE crea_tbl SET nom='$nom',prenom='$prenom',adresse='$adresse',cp='$cp',ville='$ville',tel='$tel',email='$mail' 
     WHERE qte>=1  " ;
     
     $req=mysql_query($sql)or exit ('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
      }
    voilà ce que j'ai mis et bien sur ca ne fonctionne pas, à ce stade l'utilisateur a déja choisi des articles.....je me perd totalement entre les commande "FOREACH" "WHILE"
    Si vous pouvez me donner deja un début de piste, ca serait super sympa
    Merci a vous
    Cordialement

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    Citation Envoyé par bernard26000 Voir le message
    Je n'arrive pas a trouver l'astuce pour limiter les entrées qui ne concernent que les utilisateurs en question.
    en utilisant une condition WHERE... et en indiquant la ou les données dans la base qui permettent d'identifier l'utilisateur? (au niveau sql c'est la traduction de ta phrase si tu sais exprimer précisément en français ce que tu veux et comment faire pour l'obtenir la traduction en sql ne pose pas de problème)

    sans condition where précise tu updates toute ta table....

    après ça dépend de comment tu as organisé ta table pour répérer l'utilisateur... (avec un champ qui prend de faire le lien...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Merci Léortien

    En fait j'ai une table qui contient les variables utilisateurs, et une autre table qui contient les commandes de l'utilisateur..... mais je n'ai pas de relation de l'une a l'autre
    est ce que je devrai mettre qq chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE $_SESSION["login"] = $login
    merci encore a toi
    cordialement

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2002
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 194
    Par défaut
    si tu as un champ login dans ta table 'crea_tbl' ce serait mieux à mon avis
    et ce serait plus un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WHERE login=$login
    ou 
    WHERE login=$_SESSION['login']
    et en faisant gaffe si il y a besoin de quotes autour des variables (en fonction de leur type)
    ex : $sql="......... WHERE login='".$_SESSION['login']."'...........";

    mais si comme tu dis il n'y a vraiment aucune relation entre les tables il faudra en rajouter une pour pouvoir faire le lien (du genre login comme tu le suggères)
    (sur tu regardes des petits trucs sur les bdd tu verras une histoire de clef externe)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Par défaut
    Déjà le plus astucieux il me semble serait de créer une table de clients et une table de commandes.

    Quand un client finalise sa commande, tu vérifies si il existe déjà en comparant certains champs (prénom, nom, ville) en faisant attention à ne pas être sensible à la casse et aux accents.

    Si le client n'existe pas tu créé un nouvel enregistrement.
    Si le client existe tu récupère l'id.

    Après tu insère la commande dans ta table de commandes ou tu a un champ idx_client qui contient l'id du client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (champ1, champ2, ..., idx_client) VALUES ('bla', 'blabla', ..., $idxClient)
    $idxClient qui est l'id que tu a récupéré lors de la création du client ou celui que tu a récupéré si le client existe déjà.

    Après si tu veux modifier une commande tu recupére l'id de la commande et après tu fais un UPDATE avec WHERE id_commande=$idCommande.

    Si tu veux afficher toutes les commandes d'un client, tu recupères tes clients et pour chaque client tu fais SELECT xxx FROM t_commandes WHERE idx_client=$idClient.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Merci a vous

    Je me sens deja moins seul....

    $idxClient qui est l'id que tu a récupéré lors de la création du client ou celui que tu a récupéré si le client existe déjà.
    ce qui veut dire que je dois identifier $idxclient de la maniere suivante?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idxclient = $_SESSION['login'];
    et l'inserer dans la base de commande a mesure qu'il ajoute des produits?

    Cordialement

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

Discussions similaires

  1. [SQL]Insert into Values
    Par Pitou5464 dans le forum Access
    Réponses: 10
    Dernier message: 07/08/2006, 12h01
  2. Pb d'écriture intempestive dans table avec SQL insert into
    Par pete_shifter dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/11/2005, 11h51
  3. Réponses: 2
    Dernier message: 30/09/2005, 15h41
  4. Multiplier les And dans Sql Insert Into
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 23/09/2005, 21h55
  5. erreur SQL ...INSERT INTO
    Par naidinp dans le forum ASP
    Réponses: 20
    Dernier message: 18/09/2003, 11h38

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