Limite de la boucle for en php

Fermé
HerveLepeya Messages postés 4 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 14 mars 2016 - 14 mars 2016 à 08:53
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 - 14 mars 2016 à 19:37
Bonjour,

J'ai une préoccupation dans laquelle je sollicite votre assistance. Depuis 2 jours je ne parviens pas à résoudre le problème suivant:
Je souhaite insérer plus de 1000000 d'enregistrement dans une table avec la boucle for du php, arrivé au 381 enregistrement la boucle d'arrête et ne donne plus rien.
Quelqu'un n'a-il pas un remède à ce problème?

Votre assistance SVP!


A voir également:

5 réponses

jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
14 mars 2016 à 08:57
Bonjour

regarde du côté de max_execution_time.

0
HerveLepeya Messages postés 4 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 14 mars 2016
14 mars 2016 à 09:10
Merci pour l'assistance, cette possibilité je l'ai tenté mais sans succès. J'ai même fais phpinfo() pour voir la configuration du php, mais bizarrement max_execution_time reste 30
0
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
14 mars 2016 à 08:59
Bonjour.
Ces "1000000 d'enregistrement" ce trouve sur quoi avant d’être enregistré en php ?

Les informations d'origine doivent être transformer en page sql et exporter sur la bdd. php n'est pas fait pour faire le travail de la base de donnée.

Apres tu peut quand meme tricher en augmentant ton temps d'execution de script avec ton php.ini ou sinon recharger la page tout les x enregistrement en recomençant par le dernier enregistrment effectuer mémoriser en session php.
0
HerveLepeya Messages postés 4 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 14 mars 2016
14 mars 2016 à 09:14
Merci pour votre assistance, le résultat attendu est de générer 1000000 de codes aléatoires depuis php puis les insérer dans la base dans la base de données.
0
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
Modifié par codeurh24 le 14/03/2016 à 09:32
si le but est d'envoyer des code générer aléatoirement vers la bdd, dans ce cas, je générerais plusieurs requête en même temps et rechargerai la page toutes les x enregistrement par header location ou par ajax.

Mais bon cette méthode reste quand même bizarre parceque normalement le programme qui gères les codes, doit les fournir au moment demander.
0
HerveLepeya
14 mars 2016 à 10:25
J’ai même essayé d’afficher les increments d’une boucle allant jusqu'à 400 lignes, arrivé à la 382 ligne la boucle s'arrête et n’affiche rien. A quel niveau peut se situer ce problème?
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737 > HerveLepeya
14 mars 2016 à 10:40
Comme indiqué ici : https://forums.commentcamarche.net/forum/affich-33281334-limite-de-la-boucle-for-en-php#6 ..... Sans voir ton code ..... IMPOSSIBLE de te répondre.
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737
14 mars 2016 à 10:22
Sans voir ton code ni ce que tu as testé .... impossible de te répondre.

NB: **** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0
HerveLepeya Messages postés 4 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 14 mars 2016
Modifié par jordane45 le 14/03/2016 à 14:04
le code est le suivant:
for ($i=1; $i <500 ; $i++) { 
      # code...
      $codegen=generateString(6);
      $sql = "INSERT INTO `sp_codegenere`(`IDCode`, `Code`, `Etat`) VALUES (NULL,'$codegen',0)";
      $myDB->dbQuary($sql);
      //echo "string".$i.'<br />';;

     }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
0
jordane45 Messages postés 38437 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 février 2025 4 737 > HerveLepeya Messages postés 4 Date d'inscription lundi 14 mars 2016 Statut Membre Dernière intervention 14 mars 2016
14 mars 2016 à 14:07
1 - Où sont les balises de code ????
=> Je l'ai ajoute. Merci de le faire la prochaine fois !

2 - Quelles sont ces fonctions ?
dbQuary ?
generateString ?

3 - Si tu as un ID auto-incrémenté .... pas besoin de le mettre dans ta requête.

4 - Si tu utilises PDO ... regardes ce que sont les requêtes préparées.
Ainsi .. tu peux juste passer dans ta boucle, les variables sans avoir à remettre à chaque fois la requête complète.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
codeurh24 Messages postés 760 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
14 mars 2016 à 19:37
De toute façon si on en arrive a ce problème, c'est que le vrai problème remonte lors de la façon de créer le programme techniquement.
Les solution choisis ne sont pas les bonnes peut-être par manque de connaissance.
il faut revoir la conception architecturale et conception détaillée.
0