écriture de deux tables SQL vers une seule

scarfesse Messages postés 16 Statut Membre -  
scarfesse Messages postés 16 Statut Membre -
Bonjour tout le monde,

JE suis en train de réaliser un site de e-commerce, et je souhaite valider le panier du client en prenant des infos d'une première table qui contient les données sur les produits commandées,et des infos de la table du panier du client bien entendu. et là je roule dans du beurre!

Le problème est que j'essaie, après avoir rempli "$row_basket" d'inserer ces données en les récurérant avec une fonction "getsqlvaluestring".

Le code donne ça:


mysql_select_db($database_shop, $shop);
$query_basket = sprintf("SELECT shop_basket.id,
shop_basket.client,
shop_basket.article,
shop_basket.Quantity,
shop_products.price_ht,
shop_products.price_ttc,
shop_products.price_ht*shop_basket.Quantity AS total_ht,
shop_products.price_ttc*shop_basket.Quantity AS total_ttc
FROM shop_basket
INNER JOIN shop_products
ON shop_basket.article=shop_products.id
WHERE shop_basket.client = '".$_SESSION['MM_Username']."'");
$basket = mysql_query($query_basket, $shop) or die(mysql_error());
$row_basket = mysql_fetch_assoc($basket);
$totalRows_basket = mysql_num_rows($basket);

$compteur = 0;
while ($row_basket = mysql_fetch_assoc($basket) and $compteur < $totalRows_basket)
{

$query_line_order = sprintf("INSERT INTO shop_line_order (order, article, price_ht, price_ttc, Quantity, total_ht, total_ttc) VALUES (%s, %s, %s, %s, %s, %s, %s)",

GetSQLValueString($row_order['id'], "int"),
GetSQLValueString($row_basket['article'], "int"),
GetSQLValueString($row_basket['price_ht'], "double"),
GetSQLValueString($row_basket['price_ttc'], "double"),
GetSQLValueString($row_basket['Quantity'], "int"),
GetSQLValueString($row_basket['total_ht'], "double"),
GetSQLValueString($row_basket['total_ttc'], "double"));
mysql_select_db($database_shop, $shop);
$Result1 = mysql_query($query_line_order, $shop) or die(mysql_error());

$query_suppr_basket = sprintf("DELETE FROM shop_basket WHERE id=%s",
GetSQLValueString($row_basket['id'], "int"));
mysql_select_db($database_shop, $shop);
$Result1 = mysql_query($query_suppr_basket, $shop) or die(mysql_error());

$compteur = $compteur + 1;}
}

Ensuite j'efface la table du panier.
J'ai fait une boucle afin de faire cette opération pour toutes les références présentes dans le panier.

Durant les tests, j'ai une erreur de syntax sql au niveau de la fonction getSQLValueString.

Pour info le code la fonction est:


function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($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;
}

Si quelqu'un trouve une faille dans le code ou a une idée pour faire la même opération mais avec une procédure différente, je suis preneur!

Merci.
A voir également:

3 réponses

Alexandre_C Messages postés 7 Statut Membre 7
 
C'est très jolie toutes ces phrases
0
scarfesse Messages postés 16 Statut Membre 2
 
Merci mais ça ne m'aide pas trop!
0
scarfesse Messages postés 16 Statut Membre 2
 
No idea?
0