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

PHP & Base de données Discussion :

Select double et insertion dans fichier


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Select double et insertion dans fichier
    Bonjour et premierement bonne année à tous

    Bien récemment, j'ai fait un select et intégrer le resultat dans un fichier text. Voici le code qui marche trés bien :

    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
    $filmQuery = mysql_query("requete sql");
     
    $Fnm = $v_extractdvd."fichier.sql";
    $inF = fopen($Fnm,"w");
     
    if (mysql_num_rows($filmQuery) != 0) {
      while ($arrSelect = mysql_fetch_array($filmQuery, MYSQL_ASSOC) or die(ErreurSql(mysql_errno(),mysql_error(), $query)) {
       foreach($arrSelect as $elem) {
       	$reg = ereg_replace("\r\n","<br>", $elem);
        fwrite($inF, $reg."|");
       }
       fwrite($inF, "\r\n");
      }
    }
    fclose($inF);
    Ce que j'aimerais, c'est faire un second select. Et que l'instruction de mon second select s'insére tous les cinq boucles... Par contre, pas complétement et que cela continue. Je donne un exemple :

    1 boucle
    2 boucle
    3 boucle
    4 boucle
    5 boucle
    Premiere boucle du second select
    1 boucle
    2 boucle
    3 boucle
    4 boucle
    5 boucle
    Seconde boucle du second select

    Etc

    Je dois dire que je séche sur le comment et sur quel forme doit prendre mon instruction

    J'espere que vous pourrez m'aiguiller

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    J'ai pas tout compris, ni le besoin ni l'intéret mais je te propose ça :
    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
     
    $req1 = mysql_query();
    $res1 = array();
    while ($data = mysql_fetch_assoc($req1)) {
       $res1[] = $data;
    }
     
    $req2 = mysql_query();
    $res2 = array();
    while ($data = mysql_fetch_assoc($req2)) {
       $res2[] = $data;
    }
     
    res1 = array_chunk($res1, 5);
    foreach($res1 as $set) {
       foreach($set as $data) {
          traiter($data);
       }
       traiter($res2);
    }

  3. #3
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    puis utilise nl2br pour tes retours a la ligne
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Hum comme ceci?

    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
    $Fnm = $v_extractdvd."fichier.sql";
    $inF = fopen($Fnm,"w");
     
    $req1 = mysql_query("premiere requete");
    $res1 = array();
    while ($data = mysql_fetch_assoc($req1)) {
       $res1[] = $data;
    }
     
    $req2 = mysql_query("seconde requete");
    $res2 = array();
    while ($data = mysql_fetch_assoc($req2)) {
       $res2[] = $data;
    }
     
    res1 = array_chunk($res1, 5);
    foreach($res1 as $set) {
       foreach($set as $data) {
       	$reg = ereg_replace("\r\n","<br>", $data);
        fwrite($inF, $reg."|");
    fwrite($inF, "\r\n");
       }
     
       	$reg = ereg_replace("\r\n","<br>", $res2);
       	fwrite($inF, $reg."|");
       	fwrite($inF, "\r\n");
    }
    L'interet... Hum, pour tout dire, j'en ai besoin pour sortir mes données sur un fichier à plat pour faire une insertion . Donc pour me faciliter l'insertion, j'ai besoin de faire un fichier correctement formaté ainsi je peux facilement l'insérer.

    Le principe etant de pouvoir remplir une base complexe

    Donc mon premier select prend en compte certaines données et ces données doivent etre répéter cinq fois pour ensuite insérer les données de mon second select tout du moins la premiere ligne et ainsi de suite.

    Si je fais un seul selectavec Left, cela fait un fichier beaucoup trop gros.

    Dans mon code, là cela retire la première boucle... Mon premier Select contient 20 entrée avant de revenir et de faire cela cinq fois genre :

    Entrée 1, 2, 3, 4 etc séparé par| et retour à la ligne
    Entrée 1, 2, 3, 4 etc séparé par| et retour à la ligne
    Entrée 1, 2, 3, 4 etc séparé par| et retour à la ligne
    Entrée 1, 2, 3, 4 etc séparé par| et retour à la ligne
    Entrée 1, 2, 3, 4 etc séparé par| et retour à la ligne
    Autre Select avec quelques entrées séparé par| et retour à la ligne...

    Etc comme expliqué au dessus. Mon ereg me permet de virer les retour à la ligne dans les données si il y en a pour ne pas foirer mon insertion

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ca ne marchera pas ton truc.
    Quand j'écris
    traiter($res2);
    Ca correspond à
    Ce que j'aimerais, c'est faire un second select. Et que l'instruction de mon second select s'insére tous les cinq boucles
    Donc traiter res2 correspond à ton second select. A toi de parcourir en entier ce résultat, ou ligne par ligne, c'est là que je n'ai pas trop compris.

    Et en effet nl2br est ton amie.

Discussions similaires

  1. Extraction donnees et insertion dans fichier texte
    Par BobDesign dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/03/2009, 16h41
  2. Double requette insert dans un formulaire
    Par Flash_Over dans le forum IHM
    Réponses: 7
    Dernier message: 01/07/2008, 15h43
  3. Insertion dans fichier texte + rapide que TStringList ?
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 26/02/2004, 11h34
  4. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45
  5. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16

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