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] UPDATE par rapport à plusieurs tables


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
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut [SQL] UPDATE par rapport à plusieurs tables
    Salut à tous,

    Voici mon souci.

    J'ai 3 tables qui se nomment:

    - vente: id_produit, titre, detail, photo, prix
    - client: id_client, nom, prenom, etc...
    - reservation: id, id_client, id_produit

    Pour mettre en situation, la personne rentre dans une page à l'aide de son login et pass, une fois sur cette page, elle a la possiblité de valider une réservation et de cliquer sur le bouton.

    Lors de l'envoi, je voudrais que les données de son id_client (session) et de l'id_produit s'inscrivent dans la table "réservation".

    Etant débutant en php, j'ai du mal à faire correspondre toutes les données de ces tables dans une seule, pouvez-vous m'aider?

    Merci d'avance!

  2. #2
    Membre chevronné
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Par défaut
    Il suffit de faire une requête insert....
    Dans ton formulaire de validation tu peux mettre 2 champs input de type hidden avec les valeurs dont tu a besoin...
    Ou alors les mettres en session.
    Et tu les récupères pour ta requêtes.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Citation Envoyé par yannux Voir le message
    Il suffit de faire une requête insert....
    Dans ton formulaire de validation tu peux mettre 2 champs input de type hidden avec les valeurs dont tu a besoin...
    Ou alors les mettres en session.
    Et tu les récupères pour ta requêtes.
    Oui, la balise INSERT fonctionne, j'ai déja effectué des requêtes avec, par contre dans celle-ci je dois appeler plusieurs tables logiquement? Comment cela se passe?

  4. #4
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    Bonsoir,

    Procédons logiquement
    Et regardons ce que tu as :

    1/ La personne se logue, tu as donc mis en session son id_client
    2/ Tu as ton formulaire où la personne peut (visiblement) réserver un produit
    Ce formulaire doit contenir :
    - une liste de sélection avec les produit dedans (je pense que c'est comme çà que sont les choses), appelons cette liste 'produits'
    - un bouton de soumission (submit), appelons ce bouton 'reserver'
    - une action, pour le cas présent nous dirons que cet attribut est vide, ce qui veut dire que le formulaire va renvoyer vers la même page.

    Donc maintenant, le traitement !

    En haut de ton script (celui là même qui contient ton formulaire)

    Tu vas faire un test avec isset() sur $_POST['reserver'], histoire de voir si le formulaire a été envoyé, ensuite il va falloir faire tes INSERT... je la fais vite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
    if(isset($_POST['reserver'])) {
     
        $req = 'INSERT INTO reservation (id_client, id_produit) VALUES ('.$_SESSION['id_client'].', '.$_POST['produit'].')';
        mysql_query($res) or die(mysql_error());
    }
    ...
    Il manque surement des tests nécessaire au fonctionnement que tu désires mais c'est là ce que tu a exprimer

    N'hésises pas à faire des recherches sur le forum ou bien à consulter les FAQ, le site regorge de ressources très bien faites
    Bon courage pour la suite.

    NB : pose toi aussi cette question : Est-ce qu'un client peut réserver plusieurs fois le même produit ? Ca t'évitera peut être des bourdes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Désolé pour le retard au niveau de la réponse...

    J'ai donc essayé de mettre ça en place en ayant créé plusieurs id_client, plusieurs id_produit, le problème c'est que lorsque je suis sous ces différentes sessions, lors de la validation, dans ma table, les id ne correspondent pas, j'ai 1 comme valeur à chaque fois...

    Voici mon code:

    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
    /* Produits */
    $sql->DatabaseConnexion();
    $aff_ventedeco = $sql->query("SELECT * FROM "._TVENTEDECO_." ORDER by id_produit DESC LIMIT 0,1")or die (mysql_error());
    $sql->DatabaseClose();
     
    while($results = mysql_fetch_array($aff_ventedeco,MYSQL_ASSOC)) {      
    	$tpl->assign_block_vars('ventedeco', array(
    					'TITRE' => $results['titre'],
    					'DETAIL' => $results['detail'],
    					'PHOTO' => $results['photo'],
    					'PRIX' => $results['prix'],
    					));
    }
     
    /* Gestion de l'ajout de news */
    if(isset($_POST['res_quantite']) && !empty($_POST['res_quantite'])) {
     
    	$sql->DatabaseConnexion();
     
    	$ajout = $sql->query("INSERT INTO "._TRESERVATION_." VALUES(
    						'',
    						`id_client`='".$_SESSION["id_client"]."',
    						`id_produit`='".$_POST["id_produit"]."',
    						`quantite`='".$_POST["res_quantite"]."'
    						)") or die(mysql_error());
     
    	$sql->DatabaseClose();
    }

  6. #6
    Membre chevronné
    Homme Profil pro
    Lead Dev Web
    Inscrit en
    Avril 2005
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lead Dev Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2005
    Messages : 282
    Par défaut
    Bah tu sélectionne tjrs la même ligne non ? ( LIMIT 0,1 )....

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/12/2007, 17h40
  2. [SQL] Requête complexe sur plusieurs tables
    Par BFH dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/09/2007, 16h21
  3. [SQL] Derniers enregistrement sur plusieurs tables
    Par bibom dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 28/07/2006, 23h22
  4. [SQL] Une requête dans plusieurs tables
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/12/2005, 16h23
  5. [SQL Access] SELECT sur plusieurs Tables et Composer Champs
    Par Giuseppe dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2005, 14h00

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