IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

While : à l'Interieur d'un While : certain moments : un seul traitement même s'il y en a plusieurs itmes


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Par défaut While : à l'Interieur d'un While : certain moments : un seul traitement même s'il y en a plusieurs itmes
    Bonjour,

    J'ai un while et dedans je fais de traitements, par exemple, l'enregistrement plusieurs lignes dans un MySql, etc. Tout marche bien jusqu'au ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    $count_products = count($dataDecode->articles);
     
    $i = 0;
    while ($i < $count_products) 
    	{
    		try 
    		{
    			foreach ($dataDecode->articles as $obj) 
    			{
    			//.... trouver de valeur de variables et de traitements, etc.
     
    			// par exemple :
    			$stmt = $db->prepare("INSERT INTO $ma tale (	$idArticle,//....
    			)
    			VALUES (:id,//....
    			");
    			$stmt->execute(array(':id'=>$noArticle,//....
    			));
    			//...
     
    			$i++;
    			} // FIN  foreach 
     
    		} // FIN   try
    		catch(Exception $e) 
    		{
    			throw $e;
    		}
     
    	} // fin While
    S'il y a un article, il y a un enregistrement dans MySql et s'il y en a plusieurs articles, il y a plusieurs enregistrements dans MySql.

    Ensuite, je crée un fichier XML qui va contenir tous les articles (un ou plusieurs) dans un seul fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    $count_products = count($dataDecode->articles);
     
    $i = 0;
    while ($i < $count_products) 
    	{
    		try 
    		{
    			foreach ($dataDecode->articles as $obj) 
    			{
    			//.... trouver de valeur de variables et de traitements, etc.
     
    			// par exemple :
    			$stmt = $db->prepare("INSERT INTO $ma tale (	$idArticle,//....
    			)
    			VALUES (:id,//....
    			");
    			$stmt->execute(array(':id'=>$noArticle,//....
    			));
    			//...
     
     
     
    			header('Content-Type: text/xml');
    			header('Content-Type: application/xml');
     
    			$doc = new DOMDocument('1.0', 'UTF-8');
     
    			$doc->preserveWhiteSpace = false;
    			$doc->formatOutput = true;
     
    			//...
     
    			$doc->save($nameFileXmData)
     
     
    			//....
    			$i++;
    			} // FIN  foreach 
     
    		} // FIN   try
    		catch(Exception $e) 
    		{
    			throw $e;
    		}
     
    	} // fin While
    Puisque la création (du fichier xml) est dans un while et s'il y a plusieurs articles, les plusieurs fichiers (qui contient la même information) vont créer...

    Comment je peux empêcher qu'il n'y ait qu'un seul fichier de XML, à la fin de l'exécution de scripts ?

    Merci et bonne journée

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Quel est l'intérêt du while ? Le foreach seul ne suffit pas ?

    Je n'ai pas bien compris ce qui suit
    Citation Envoyé par tonton.odilon Voir le message
    [...]
    Puisque la création (du fichier xml) est dans un while et s'il y a plusieurs articles, les plusieurs fichiers (qui contient la même information) vont créer...

    Comment je peux empêcher qu'il n'y ait qu'un seul fichier de XML, à la fin de l'exécution de scripts ?
    [...]
    Cela veut-il dire que plusieurs fichiers sont créés alors que vous n'en voulez qu'un seul ?

    Pour avoir un seul fichier, il faut sortir le code suivant du foreach (et du while) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
     
    $doc = new DOMDocument('1.0', 'UTF-8');
     
    $doc->preserveWhiteSpace = false;
    $doc->formatOutput = true;
    [...]
    $doc->save($nameFileXmData)
    Ce qui se trouve dans [...] doit rester dans le foreach.

  3. #3
    Membre éclairé
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Par défaut
    Merci Christophe P,

    ça marche...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 23/09/2019, 16h45
  2. Réponses: 3
    Dernier message: 01/06/2009, 16h49
  3. Les objets disparaissent au bout d'un certain moment
    Par restricteur dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 17/05/2007, 18h03
  4. Réponses: 2
    Dernier message: 06/02/2006, 16h41
  5. Réponses: 6
    Dernier message: 24/01/2006, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo