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 :

Inserer les donnees dans ma table commande


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut Inserer les donnees dans ma table commande
    Salut
    Je voudrais savoirs comment je peux inserrer mes donnees de panier dans la table commndes.
    L'affiche de panier marche trés bien avec echo showCart(); je peux modifer ajouter supprimer mais tous ca reste dans la session. je voudrais apres que je valide la commane, cette derniere doit etre inserer dans ma base de donnees dans la table commande depuis les variables trouvants dans la seesion
    voici mes codes.

    page founctions.inc.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
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?php
    function writeShoppingCart() {
    	$cart = $_SESSION['cart'];
    	if (empty($cart)) {
    		return '<span>Votre panier est vide</span>';
    	} else {
    		// Parse the cart session variable
    		$items = explode(',',$cart);
    		$s = (count($items) > 1) ? 's':'';
    		return '<span>Vous avez '.count($items).' produit'.$s.' dans votre panier</span>';
    	}
    }
     
    function showCart() {
    	global $db , $total ;
    	$cart = $_SESSION['cart'];
    	if ($cart) {
    		$items = explode(',',$cart);
    		$contents = array();
    		foreach ($items as $item) {
    			$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
    		}
    		$output[] = '<form action="cart.php?action=update" method="post" id="cart">';
    		$output[] = '<table>';
    		$output[] = '<th>Description</th>';
    		$output[] = '<th>Prix</th>';
    		$output[] = '<th>Quantite </th>';
    		$output[] = '<th>Total</th>';
    		$output[] = '<th></th>';
     
    		foreach ($contents as $id=>$qty) {
    			$sql = 'SELECT id, titre, prix  FROM films WHERE id = '.$id ;
    			$result = $db->query($sql);
    			$row = $result->fetch();
    			extract($row);
    			$title = $row['titre'] ; 
    			$price = $row['prix'] ;
    			$output[] = '<tr>';
    			$output[] = '<td class="t">'.$title.'</td>';
    			$output[] = '<td class="p">'.$price.' DT</td>';
    			$output[] = '<td class="q"><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" class="center" />
    			</td>';
    			$output[] = '<td class="total">'.($price * $qty).' DT</td>';
    			$output[] = '<td class="d"><p><a href="cart.php?action=delete&id='.$id.'" class="r"><img src="images/icones/supprimer.png" alt="supprimer" title="supprimer" /></a></p></td>';
    			$total += $price * $qty;
    			$output[] = '</tr>';
    		}
    		$output[] = '<tr>';
    		$output[] = '<td colspan="3"></td>';
    		$output[] = '<td class="right">Grand total:<br /> <strong>'.$total.' DT</strong></td>';
    		$output[] = '<td></td>';
    		$output[] = '</table>';
    		$output[] = '<div><button type="submit">Modifier la carte</button></div>';
    		$output[] = '</form>';
    	} else {
    		$output[] = '<p>* votre panier est vide.</p>';
    	}
    	return join('',$output);
    }
    ?>

    page cart.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
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
     
    <?php
    // Include MySQL class
    require_once('inc/mysql.class.php');
    // Include database connection
    require_once('inc/global.inc.php');
    // Include functions
    require_once('inc/functions.inc.php');
    // Start the session
    session_start();
    // Process actions
    $action = $_GET['action'];
    switch ($action) {
    	case 'add':
    		if (!empty($_SESSION['cart'])) {
    			$_SESSION['cart'] .= ','.$_GET['id'];
    		} else {
    			$_SESSION['cart'] = $_GET['id'];
    		}
    		break;
    	case 'delete':
    		if ($_SESSION['cart']) {
    			$items = explode(',',$_SESSION['cart']);
    			$newcart = '';
    			foreach ($items as $item) {
    				if ($_GET['id'] != $item) {
    					if ($newcart != '') {
    						$newcart .= ','.$item;
    					} else {
    						$newcart = $item;
    					}
    				}
    			}
    			$_SESSION['cart'] = $newcart;
    		}
    		break;
    	case 'update':
    	if ($_SESSION['cart']) {
    		$newcart = '';
    		foreach ($_POST as $key=>$value) {
    			if (stristr($key,'qty')) {
    				$id = str_replace('qty','',$key);
    				$items = ($newcart != '') ? explode(',',$newcart) : explode(',',$_SESSION['cart']);
    				$newcart = '';
    				foreach ($items as $item) {
    					if ($id != $item) {
    						if ($newcart != '') {
    							$newcart .= ','.$item;
    						} else {
    							$newcart = $item;
    						}
    					}
    				}
    				for ($i=1;$i<=$value;$i++) {
    					if ($newcart != '') {
    						$newcart .= ','.$id;
    					} else {
    						$newcart = $id;
    					}
    				}
    			}
    		}
    	}
    	$_SESSION['cart'] = $newcart;
    	break;
     
    }
    $cart = $_SESSION['cart'] ;
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<title>PHP Shopping Cart Demo · Cart</title>
    	<link rel="stylesheet" href="css/styles.css" />
    <link rel="stylesheet" href="style.css" type="text/css" />
     
    </head>
     
    <body>
    <?php
    include("masthead.php");
    ?>
    <div id="content">
     
    		<div id="shoppingcart">
    <h1 class="center">Votre panier</h1>
    		</div>
     
     
    		<div id="cart">
    <h1 class="center">Bon de commande</h1><br />
    <?php
    echo showCart();
    ?>
    		</div>
     
    <?php
    $cart = ($_SESSION['cart']);
     
     
    </div>
    <?php
    include("navbar.php");
    include("footer.php");
    ?>
     
    </body>
    </html>
    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut
    UP

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut
    UP

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour, fais un

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SESSION['cart']);
    echo '</pre>';

    voir comment est formatée ta session stp

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour, fais un

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    print_r($_SESSION['cart']);
    echo '</pre>';

    voir comment est formatée ta session stp
    Salut ca m'affiche les id des produits
    par exemple 25,25,29
    25 deux fois parceque la quantité est 2 et moi je veux inserre la commande dans la table commande

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Montres nous le script de création de ta table commande afin qu'on puisses t'aider pour ta requete stp

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Montres nous le script de création de ta table commande afin qu'on puisses t'aider pour ta requete stp
    la table commande:

    id_commande
    id_produit
    quantité
    prix_unitaire
    smme_total
    date
    id_client

  8. #8
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Tu as besoin de la table films apparemment pour récupérer les infos de ta commande non ?

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 128
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Tu as besoin de la table films apparemment pour récupérer les infos de ta commande non ?
    les infos de la commande restent dans une session de type array : $_session['cart'] et moi je voudrais savoir comment parcourir ce table et puis insserer les donnees qui le contient dans ma base de donnees aprés avoir clicker sur le bouton valider le commnde. sachant que lorsque j'écris la fonction showcart : <?php echo showcart() elle affiche le panier correctement et je peux modifier supprimer et ajouter.

  10. #10
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Citation Envoyé par hous04 Voir le message
    les infos de la commande restent dans une session de type array : $_session['cart']

    C'est pour ca que je t'ai demandé de faire un print_r de ton tableau et que tu m'a répondu que $_SESSION['cart'] ne contenait que des id des produits

    Montre nous le print_r stp

Discussions similaires

  1. [Débutant] procedure stocké pour inserer les données dans 2 tables differente de la BDD
    Par beauregard12 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 18/04/2015, 01h19
  2. [MySQL] inserer des donnees dans 2 tables mais pas une sans l'autre
    Par monlou dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/09/2010, 21h19
  3. inserer les donnés dans une table
    Par assiya dans le forum SQL
    Réponses: 4
    Dernier message: 27/11/2009, 11h53
  4. inserer les champs dans un table
    Par Daniela dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/06/2009, 08h30
  5. Réponses: 2
    Dernier message: 17/10/2006, 11h25

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