rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

écriture de deux tables SQL vers une seule

Posté par scarfesse, le mercredi 12 décembre 2007 à 15:14:58
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.
Configuration: Windows XP
Firefox 2.0.0.11
Répondre à scarfesse  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alexandre_C, le mercredi 12 décembre 2007 à 15:18:16
C'est très jolie toutes ces phrases
Répondre à Alexandre_C

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
scarfesse, le mercredi 12 décembre 2007 à 15:50:16
Merci mais ça ne m'aide pas trop!
Répondre à scarfesse

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 scarfesse, le mercredi 12 décembre 2007 à 17:40:03
No idea?
Répondre à scarfesse
Logiciels pertinents trouvés dans les téléchargements
Télécharger K-Lite Codec Pack Full 4.0.0K-Lite Codec Pack Full - K-Lite Codec Pack est une collection de codecs et de filtres nécessaires pour encoder ou décoder des formats audio ou vidéo....Catégorie: Codecs
Licence: Open Source
Télécharger Windows Defender pour Windows XP/Vista February 15, 2007Windows Defender pour Windows XP/Vista - Windows Defender est un programme gratuit permettant de se protéger des pop-ups, des ralentissement et des failles de...Catégorie: Anti-Spyware
Licence: Freeware/gratuit
Télécharger CDmate 2.5.4.17CDmate - CD-Mate est une suite de gravure capable de concurrencer Nero Burning ROM. Il offre de nombreuses fonctionnalités de...Catégorie: Gravure
Licence: Demo
Télécharger Stinger 3.8.0Stinger - Stinger est un logiciel léger et gratuit capable de détecter et supprimer les virus qui font le plus parler d'eux - près de...Catégorie: Antivirus
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « écriture de deux tables SQL vers une seule »