Limite de la boucle for en php

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!

5 réponses

  1. Modérateur
    Bonjour

    regarde du côté de max_execution_time.

    1. 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
  2. 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.
    1. 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.
  3. 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.
    1. 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?
  4. Modérateur
    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

    .
    1. 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.
    2. Modérateur
      @HerveLepeya1 - 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.
  5. 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.