problème dans le traitement de mon panier
Posté : 24 avr. 2009, 21:01
Bonjour,
Je viens de créer un site marchand avec Dreamweaver en suivant les étapes d'un livre car je suis débutante en php, mais je coince sur la page de traitement du panier.
Dans ma page traitement_panier.php, il n'y a que la partie en html qui s'affiche. Quand j'insère des echo pour voir quelle est la valeur d'une variable rien ne s'affiche.
Est-ce que mon problème provient d'une erreur
- de session (la page de panier est en accès restreint alors que la page traitement panier ne l'est pas) ?
- de code php dans le body ?
J'ai fait pas mal d'essais, sans succès. (Pour le reste du site j'avais utilisé l'interface de dreamweaver et maintenant qu'il faut que je m'intéresse au code, je me sens complètement perdue.)
Le code qui se trouve avant le doctype :
Merci
Je viens de créer un site marchand avec Dreamweaver en suivant les étapes d'un livre car je suis débutante en php, mais je coince sur la page de traitement du panier.
Dans ma page traitement_panier.php, il n'y a que la partie en html qui s'affiche. Quand j'insère des echo pour voir quelle est la valeur d'une variable rien ne s'affiche.
Est-ce que mon problème provient d'une erreur
- de session (la page de panier est en accès restreint alors que la page traitement panier ne l'est pas) ?
- de code php dans le body ?
J'ai fait pas mal d'essais, sans succès. (Pour le reste du site j'avais utilisé l'interface de dreamweaver et maintenant qu'il faut que je m'intéresse au code, je me sens complètement perdue.)
Le code qui se trouve avant le doctype :
<?php require_once('../Connections/xxx.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? stripslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) ."'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
?>
Le code qui se trouve dans le body :
<?php
//récupérer le dernier numéro de commande attribué au client actuel
if (isset($_SESSION['MM_Username'])) {
mysql_select_db($database_xxx, $xxx);
$query_commande = sprintf("SELECT id
FROM commande
WHERE mail ='".$_SESSION['MM_Username']."'
ORDER BY id DESC");
$commande = mysql_query($query_commande, $xxx) or die(mysql_error());
$row_commande = mysql_fetch_assoc($commande);
$totalRows_commande = mysql_num_rows($commande);
//récupérer 1ere ligne du panier du client actuel
mysql_select_db($database_xxx, $xxx);
$query_panier = sprintf("SELECT panier.*,
produit.prix,
produit.prix*panier.quantite
AS ss_ss_total_ttc
FROM panier
INNER JOIN produit
ON produit.id=panier.produit
WHERE client ='".$_SESSION['MM_Username']."'");
$panier = mysql_query($query_panier, $xxx) or die(mysql_error());
//nb d'enregistrements concerné par la requête
$totalRows_panier = mysql_num_rows($panier);
$compteur = 0;
/* Tant que la requête $panier renvoie une donnée et que le compteur n'a pas atteint le nb total d'enregistrements, on insère le contenu extrait de la table panier ds la table ligne_commande.
On efface ensuite la ligne panier que l'on a traité et on incrémente le compteur pr traiter le prochain enregistrement lors du prochain passage ds la boucle. */
while ($row_panier = mysql_fetch_assoc($panier) and $compteur < $totalRows_panier)
{
$query_ligne_commande = sprintf("INSERT INTO ligne_commande (commande, produit, prix, quantite, ss_ss_total_ttc) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($row_commande['id'], "int"),
GetSQLValueString($row_panier['produit'], "int"),
GetSQLValueString($row_panier['prix'], "double"),
GetSQLValueString($row_panier['quantite'], "int"),
GetSQLValueString($row_panier['ss_ss_total_ttc'], "double"));
mysql_select_db($database_xxx, $xxx);
$Result1 = mysql_query($query_ligne_commande, $xxx) or die(mysql_error());
$query_suppr_panier = sprintf("DELETE FROM panier WHERE id=%s",
GetSQLValueString($row_panier['id'], "int"));
mysql_select_db($database_xxx, $xxx);
$Result1 = mysql_query($query_suppr_panier, $xxx) or die(mysql_error());
$compteur = $compteur+1;
}
}
?>
J'espère que quelqu'un pourra m'aider.Merci