Formulaire créé en javascript limité à 90 "lignes"

Formulaire créé en javascript limité à 90 "lignes" - PHP - Programmation

Marsh Posté le 18-02-2017 à 08:36:41    

Bonjour à tous,
 
J'ai un problème avec le code suivant:
 

Code :
  1. if(!empty($_POST['id_produit_'])){
  2. foreach($_POST['id_produit_'] as $key => $val)
  3. {
  4.  $requete="INSERT INTO matable (num_vente,
  5.            id_produit,
  6.            quantite
  7.            )
  8.     VALUES ('$num_vente',
  9.       '$id_produit',
  10.       '$quantite'
  11.       )";    
  12. }//Fin du foreach
  13. }//Fin du Post
  14. header("location:"."http://www.google.be" );


 
Il n'y a pas de problème s'il n'y a pas beaucoup de lignes à enregistrer dans le foreach, mais s'il y en a beaucoup, tout ne s'enregistre pas dans ma base.
Je pense donc que la redirection s'effectue avant que la boucle ne soit finie.
 
Pensez-vous que le problème puisse bien venir de là? Mon header est mal placé?
Auriez-vous une solution pour moi svp?
 
Merci d'avance!


Message édité par bingojm le 22-02-2017 à 17:08:13
Reply

Marsh Posté le 18-02-2017 à 08:36:41   

Reply

Marsh Posté le 18-02-2017 à 12:40:59    

Salut à toi.
j'ai repris ton code, l'ai remit à ma sauce + concaténation. ci-dessous

Code :
  1. if(!empty($_POST['id_produit_'])){
  2.     foreach($_POST['id_produit_'] as $key => $val){
  3.          $requete= 'INSERT INTO matable (num_vente, id_produit, quantite) VALUES ("'.$num_vente.'","'.$id_produit.'","'.$quantite.'" )'; 
  4.     }//Fin du foreach
  5. }//Fin du Post
  6. header("location:"."http://www.google.be" );


 
Un petit test que tu peux faire :  
 

Code :
  1. if(!empty($_POST['id_produit_'])){
  2.     $nb_val = count($_POST['id_produit_']);
  3.     $nb = 0;
  4.     foreach($_POST['id_produit_'] as $key => $val){
  5.          $requete= 'INSERT INTO matable (num_vente, id_produit, quantite) VALUES ("'.$num_vente.'","'.$id_produit.'","'.$quantite.'" )';
  6.          $nb += 1;
  7.        
  8.     }//Fin du foreach
  9. }//Fin du Post
  10. if($nb_val == $nb){
  11.     var_dump(''INSERT OK);
  12.     header("location:"."http://www.google.be" );
  13. }


 
Je ne suis pas un pro, mais les var_dump, il y a que ça de vrai :)


---------------
_______________    _____________
Reply

Marsh Posté le 22-02-2017 à 16:08:16    

Merci à toi lesprate.
 
AU SECOURS! Quelle horreur...
En fait, ce n'est pas une histoire de redirection. Tout va bien de ce côté-là. Je dirais même que c'est plus grave...
 
Le souci est qu'en testant avec var_dump, je me rends compte que le nombre d'enregistrement se limite toujours à 90!!!!  
 
Pourquoi???
 
Merci pour votre aide...

Reply

Marsh Posté le 22-02-2017 à 17:07:19    

Je m'y perds...
J'ai mal analysé le var_dump...
En effet, il m'indique (grâce à lesprate :) ) que il n'y a pas de souci au niveau sql ni de la boucle... car si j'ai 200 enregistrements, mon $nb_val est limité lui aussi à 90 enregistrements. La suite est logique, les 90 enregistrements sont bien enregistrés.
Le souci est donc ailleurs et avant la boucle !
 
Il faut savoir que mon formulaire est créé au fur à mesure qu'un article est sélectionné dans une liste (tout ça en javascript). Donc la liste s'allonge au fur et à mesure jusqu'à l'envoi. Et apparemment, au moment de l'envoi, il n'y a que 90 enregistrements qui passent.
 
Pourquoi??? Et surtout, comment y remédier?  
 
Merci

Reply

Marsh Posté le 22-02-2017 à 17:25:34    

Ton appli ne serait-elle pas hébergée sur un serveur mutualisé ?
 
Moi, j'ai eu le soucis chez OVH : au bout d'un certain nb de requêtes SQL, OVH coupait la connexion à la BD et mon script PHP continuait tranquillement mais forcément, sans accès à la BD, le reste du traitement se passait mal :/ La raison était que c'était pour se protéger du flood SQL.
Regarde si t'aurais pas un msg d'erreur de la part de ton SGBD (MySql, j'imagine ?).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-02-2017 à 17:31:15    

Non j'ai mon propre serveur dédié.
Y aurait-il des réglages à modifier?
 
Mais apparemment, c'est exactement le même problème que toi!
Ouf, une explication c'est déjà ça...
Pourtant 200 lignes, ce n'est quand même pas énorme...
 
Cela dit, si la connexion était coupée, Est-ce que $nb_val ne serait quand même pas lui, à 200?
 
Je vais regarder si je trouve des messages d'erreur...

Reply

Marsh Posté le 23-02-2017 à 09:55:51    

Fais un print_r($_POST['id_produit_']) pour voir si ton formulaire est bien complet. Ca pourrait venir aussi d'une limitation de la taille de données postée par le navigateur.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-02-2017 à 18:49:54    

Merci pour ton aide rufo.
Le problème est bien là. Dans tous les cas, je n'ai que 90 valeurs!!!
C'est donc le navigateur qui pose problème?
J'utilisais IE. Y a-t-il moyen de contourner ce problème?
 
Merci d'avance

Reply

Marsh Posté le 23-02-2017 à 18:52:35    

Même problème avec Mozilla :(
 
Au secours...

Reply

Marsh Posté le 23-02-2017 à 19:46:18    

Ton formulaire semble trop gros. T'aurais pas la possibilité de poster ton formulaire ligne par ligne avec du Ajax par ex ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-02-2017 à 19:46:18   

Reply

Marsh Posté le 23-02-2017 à 21:23:39    

Ouch. Voilà la mauvaise nouvelle de l'année.
Ben si, mais je dois tout recoder. quelle horreur.
En fait, je construisais tout le formulaire en javascript avant de l'envoyer. Et quand le formulaire devient trop gros, ben voilà le résultat.
Je n'ai pas d'autre choix??

Reply

Marsh Posté le 23-02-2017 à 23:07:18    

Un formulaire avec 200 lignes, ça fait quand même beaucoup, non :??:
Ajax ou découpage en lots de x enregistrements.
 
Voir quand même si t'as pas un pb de conception... :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-02-2017 à 14:03:46    

200 lignes c'est très rare, mais c'est arrivé, donc pas le choix...
Allez, c'est parti.
Je vais recommencé en ajax. Voyons le bon côté, j'en retirerai encore d'autres avantages. :)
Merci beaucoup rufo! Rassuré de voir au moins d'où vient le problème.

Reply

Marsh Posté le 06-03-2017 à 16:42:18    

Salut,
débrider Apache n'est peut-être pas une solution pérenne, mais vois si ce genre de réglage peut t'aider : http://stackoverflow.com/questions [...] -variables
 
Vu que t'es sur un dédié. Faut bien relancer Apache ensuite.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 06-03-2017 à 22:41:44    

C'est magnifique NewsletTux. Tu me fais gagner des dizaines d'heures de travail. Il fallait le savoir! 1000 mercis!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed