8791 sujets

Développement web côté serveur, CMS

bonjour,

J’aimerais seulement enregistrer la derniere commande du client de la table commandes et listes dans la table commandesok.
Mais, lors de l’enregistrement toutes les commandes du meme client sont memorisées. Smiley decu

Si quelqu’un à un conseil

merci

mysql_select_db($database_Connexion, $Connexion);
$query_rsCommande = sprintf("SELECT commandes.ID, `date`, 
clientID, etat, total, listes.commandeID, listes.reference, 
listes.quantite, listes.prixArticle FROM commandes 
INNER JOIN listes ON commandes.ID=listes.commandeID 
WHERE clientID = %s ORDER BY ID DESC", GetSQLValueString($colname_rsCommande, "int"));
while ($row_rsCommande = mysql_fetch_assoc($rsCommande) and $compteur <$totalRows_rsCommande)
{
$query_rsCommandeOK = sprintf("INSERT INTO commandesok 
(ID, `date`, clientID, etat, total, reference) 
VALUES (%s, %s, %s, %s, %s, %s)", 
GetSQLValueString($row_rsCommande ['ID'], "int"), 
GetSQLValueString($row_rsCommande ['date'], "date"), 
GetSQLValueString($row_rsCommande ['clientID'], "int"), 
GetSQLValueString($row_rsCommande ['etat'], "text"), 
GetSQLValueString($row_rsCommande ['total'], "int"), 
GetSQLValueString($row_rsCommande ['reference'], "text"));

Modifié par fanny742 (25 Feb 2008 - 21:00)
bonjour,

j'essai depuis hier de copier le dernier enregistrement de la table commandes et listes vers la table commandesok, mais je n'y arrive pas, est ce que quelqu'un peu m'aider, je debute ?

merci
Bonjour,

à mon avis il manque un morceau de code,
ou alors la première requête ci-dessus n'est jamais exécutée (pas de mysql_query($query_rsCommande) )
bonsoir,

J'ai utilisé le code suivant dans ma page, mais mon probleme est que je n'arrive pas selectionner la derniere commande passee par le client. Lors de mon enregistrement toutes les commandes du meme client sont enregistrées dans ma base de donnée. Je filtre avec l'ID du client avec ORDER desc pour l'ID de la commande.

$rsCommande = mysql_query($query_rsCommande, 
$Connexion) or die(mysql_error());
$row_rsCommande = mysql_fetch_assoc($rsCommande);
$totalRows_rsCommande = mysql_num_rows($rsCommande);
lut,

reponse rapido ( <edit> et déja j'y crois plus voir la suite en surplus </edit>)
tu order by date desc et tu mets limit 1 pour avoir juste le dernier enregistrement?

quoique pb n°1 il faut avoir des dates tres precises ( a la seconde ou minute au pire ) car un client peut commander plusieurs fois dans une meme journée, dans la même heure.

sinon ( et a l'ecrire ce sinon j'ai bien l'impression que ça va etre sinon )

hum,

je sais pas moi je dois t'avouer que j'ai toujours un peu de mal
a visualiser les requetes des autres. en plus tu nous indiques pas la structure de tes tables.

listes est une table d'articles et ta requete fait a la fois ressortir la derniere commande et les objets dedans?

tu vas pas pouvoir limite 1 car il faudrait limit au nbre d'objets.

ne serais-t-il pas plus raisonable de le faire en 3 temps?

1/ je recup l'id de la derniere commande avec le limit 1
2/ ensuite je rajoute les produits qui vont avec.
3/ j'insere dans la nouvelle table
Modifié par CPascal (04 Mar 2008 - 00:02)
Bonjour,

Un conseil (pas une solution mais bon), commence par effectuer les deux requêtes séparément. Ainsi on peut s'assurer que la première requête retourne ce que l'on veut avant de fournir son résultat à la seconde.