Pleins de questions, bugs et problèmes...

Eléphant du PHP | 50 Messages

29 avr. 2008, 17:06

Euh,
J'ai fais quelque chose grâce à toi qui donne un début de résultat mais il reste juste un léger soucis..

Voici le code (j'ai pas fini de commenté, désolé)
<?php
					
$date=date("Y-m-d");

$requete1="INSERT INTO commande (numero_cde,statut,datecdecl,num_cli_cde) VALUES ('','En attente','$date','$numero')"; //ajout de la commande dans la table commande
mysql_query($requete1) or die ("Requête1 impossible".mysql_error());//exécution de la requête

				
				
foreach( $_SESSION['panier'] as $value ) {

  $id=$value['id_prod'];
  $qtite=$value['qteProduit']
} 
  
$num_cde=mysql_insert_id();

$aInsert[]="('".$id."','".$num_cde."',".$qtite.")"; 
   

$sInsert = implode(',',$aInsert);
		
$requete2 = "INSERT INTO ligne_commande (num_prod, num_cde, qte_cde) VALUES". $sInsert; //ajout des articles et quantité dans la table ligne_commande
mysql_query($requete2) or die ("Requête2 impossible".mysql_error());//exécution de la requête

?> 
Il enregistre bien dans les deux tables avec le même numéro de commande, le numéro client c'est bon aussi mais le problème c'est qu'il enregistre qu'un seul article: le dernier de la liste du panier.
Il l'enregistre bien a part ca avec la quantité et tout.
Donc comment faire pour enregistrer tout les articles?

Et sinon est ce que mon code est correct? je me suis aidé de vos réponses.

Merci beaucoup vous m'aidez beaucoup !

Mammouth du PHP | 693 Messages

29 avr. 2008, 17:43

Il faut placer

$aInsert[]="('".$id."','".$num_cde."',".$qtite.")";

Dans le foreach

ce qui donne
$num_cde=mysql_insert_id(); 


foreach( $_SESSION['panier'] as $value ) { 

  $id=$value['id_prod']; 
  $qtite=$value['qteProduit'] ;
  $aInsert[]="('".$id."','".$num_cde."',".$qtite.")";  
}  

En gros, pour chaque élement du tableau $_SESSION['panier'], on crée un élement dans $aInsert, qui correspondra à une insertion dans la table.

De plus, il n'y a pas besoin d'utiliser els variable $qtite et $id (j les avais mise pour te montrer comment acceder à tes données)

Donc ceci serait mieux
$num_cde=mysql_insert_id(); 


foreach( $_SESSION['panier'] as $value ) { 
  $aInsert[]="('".$value['id_prod']."','".$num_cde."',".$value['qteProduit'].")";  
}  

Eléphant du PHP | 50 Messages

29 avr. 2008, 18:23

Wow :afraid:

Ca fonctionne !

Apres des jours et des jours :mrgreen:

Je ne saurais jamais comment te remercier là
Merci infiniment

Je vais mettre tout ca au propre et j'en ai enfin fini avec ce panier!
Ca va mieux quand on comprend!

J'ai du te monopoliser ta journée, désolé

Merci merci merci!

A bientot

Mammouth du PHP | 693 Messages

29 avr. 2008, 19:56

Non ne t'inquiète pas, tu n'as pas "monopolisé" ma journée. Ca me fait plaisir d'aider ceux qui ont du mal.

Vu que tu as eu toutes tes réponses, n'oubli pas de mettre résolu à ton sujet :wink:

Eléphant du PHP | 50 Messages

29 avr. 2008, 22:36

Bin vu que j'ai fais ce topic pour pleins de problèmes différents, c'est pas fini :S

Enfin pour l'instant je n'ai pas encore eu trop de nouveaux problèmes mais peut-être dans les prochains jours c'est pour ca que je n'ai pas fermé le topic.

Enfin je veux bien mettre résolu maintenant si c'est mieux pour vous mais je risque de re-créer un sujet :S

Je mettrais résolu quand je n'aurais plus de questions, de toute manière.

Merci encore

Mammouth du PHP | 19672 Messages

30 avr. 2008, 05:32

Non, si la question de base de ce sujet est résolu, ferme celui-ci et quand tu auras une nouvelle question, tu ouvriras un nouveau sujet.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 avr. 2008, 10:51

Modération :
sgrunt, si tu as une autre question ouvre un nouveau sujet,
cela te permettra d'avoir plus de réponses.
Déjà le sujet de base n'était pas très clean (titre hasardeux).
Il vaut mieux avoir plein de sujet avec un souci qu'un gros sujet avec plein de soucis. Sujet qui serait inutile à la communauté puisque personne n'y comprendrait ou n'y retrouverait quoi que ce soit.

En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 50 Messages

30 avr. 2008, 12:11

Très bien autant pour moi :wink:

Merci

Bonne journée