Petit programme de remplissage de BDD :X

Discussion dans 'Web, design' créé par dCd_, 11 Avril 2006.

Statut de la discussion:
Fermée.
  1. Offline
    dCd_ Touriste
    Alors voilà, je dispose de ces données, qui sont contenue dans un .txt:

    !
    22011 Mairie L Hopital(11) 0+490936.00 +0064355.00 +280 0
    22003 Jeanne dArc(3) 0+490907.00 +0064554.00 +260 0
    22004 Merlebach(4) 0+490849.00 +0064811.00 +240 0
    22007 Cite Bois Richard(7) 0+490955.98 +0064403.00 +280 0
    22009 Ecole de Carling(9) 0+490960.00 +0064305.00 +240 0
    22012 Forbach(12) 0+491115.01 +0065729.00 +250 0
    22014 Spicheren(14) 0+490900.00 +0064500.00 +350 0
    22010 Porcelette(10) 0+490932.31 +0063928.00 +210 0
    22005 Puits 2(5) 0+490936.00 +0064441.00 +240 0
    22001 Batiment ELF-ATO(1) 0+490827.00 +0064241.00 +250 0
    22015 Sarreguemines(15) 0+490634.99 +0070412.99 +210 0
    22016 Saint-Avold Centre 0+490707.00 +0064249.00 +250 0
    22014 Spicheren(14) 0+490900.00 +0064500.00 +350 0
    22018 DIEUZE (1:cool: 0+000000.00 +0000000.00 +250 0
    22017 Volmunster 0+000000.00 +0000000.00 +0 0
    22001 Batiment ELF-ATO(1) 0+490827.00 +0064241.00 +250 0
    !

    Détail: entre la fin de la parenthèse apres la ville et le chiffre, ce n'est pas un espace mais plusieurs, pour aligner tt les chiffres entre eux !

    Je dois réaliser un code en php, qui prend le nom de la ville pour créer une nouvelle table du nom de la ville, ensuite je dois récupérer le premier chiffre situer avant le nom de ville pour créer un nouveau champs dans la table de la ville, ainsi que les 3 chiffres derriere le nom de la ville pour aussi créeer nouveaux champs de cette ville et cela pour toutes les lignes !

    Par exemple pour la premiere ligne:
    -Une nouvelle table mairie l'hopital doit etre créé
    -Dans cette table un champs id_station doit etre créé avec comme valeur 22011
    -Un autre champs coordonnées X avec comme valeur 0+490936.00
    -Un autre champs coordonnées Y avec comme valeur 0064355.00
    -Et un autre avec comme valeur +280

    Ainsi de suite pour toutes les ligne du .txt A partir du "!" jusqu'au prochain "!"

    Je suis nul en code et je ne sais pas comment faire ! :oops:
    dCd_, 11 Avril 2006
    #1
  2. Online
    dai_the flu ex membre
    oui dcd c'est assez facile à faire.
    saisir tes infos dans une bdd c'est très facile.
    ensuite je suppose que tu désires voir les infos de la bdd s'afficher dans un tableau sur une page php ?
    et veux-tu également que l'utilisateur puisse saisir des nouvelles données à partir d'un formulaire sur une autre page php ?
    doit-il aussi pouvoir gérer les villes déja enregistrées ? (modifier, supprimer...)
    dai_the flu, 11 Avril 2006
    #2
  3. Online
    dai_the flu ex membre
    ou alors tu veux peut etre direct coller tout le contenu de ton .txt dans une formulaire, et que ca te créé automatiquement toutes les tables et leur contenu en un clic ?..
    dai_the flu, 11 Avril 2006
    #3
  4. Offline
    dCd_ Touriste
    Oui, c'est ça ! Mais pas besoin de le mettre dans un formulaire, il faut juste que tous se mettent automatiquement dans la base en créant les tables et les champs !

    Pour détecter le "!" j'ai:

    $depart1 = "!";

    if (ereg($depart1,$lireliste))
    {
    ... Ce que je n'arrive pas a faire :-(
    }
    dCd_, 11 Avril 2006
    #4
  5. Online
    dai_the flu ex membre
    ok :roll:


    pas si simple en fait :p
    faut retrouver la fonction en php qui permet de sélectionner chaque mot séparément, je ne la sait plus...
    ensuite exécuter tes requetes sql (create table, insert... ) pour chacunes des selections et pour chaque lignes...

    gl :D
    dai_the flu, 11 Avril 2006
    #5
  6. Offline
    MbK_ Etudjant
    Ca fait un moment que je n'ai plus fait de PHP donc je me souvient plus de la fonction mais il en existe une qui sépare une chaine de caractère à chaque caraxtère "x" défini.

    Tu pourrais alors définir ce caractère comme étant l'espace. Ainsi tes données se retrouveront dans un tableau. Tu n'auras plus qu'à prendre séparément chaque valeur et la mettre ou tu désire.
    MbK_, 11 Avril 2006
    #6
  7. Offline
    Ezekiel ! Elite
    tu fais explode ("\n", $txt);
    tu fais une boucle avec le tableau que t'as obtenu
    et apres t'utilise preg_match_all je pense
    donc t'as un truc du style :
    Code:
    $tableau = explode ("\n", $txt);
    foreach ($tableau as $key => $value){
    preg_match_all (...);
    + ta requete sql
    }
    
    Ezekiel !, 11 Avril 2006
    #7
  8. Offline
    dCd_ Touriste
    <?
    $liste="C:\dCd Folders\PerZoZ\TEST\Stat_pol.txt";
    $openliste = fopen($liste, "r");
    $lireliste = fread ($openliste, filesize ($liste));
    $lireliste = nl2br($lireliste);
    fclose($openliste);
    //echo $lireliste;



    $openliste = fopen($liste, "r");
    $dones = fgets($openliste);
    $depart1 = "!";
    echo "<pre>"; //affiche texte formaté

    if (ereg($depart1,$lireliste))
    {
    for($i=0; $i<1337; $i++)
    {
    $dones = fgets($openliste);
    //echo $dones;
    echo '<br>';
    echo substr($dones, 0, 5); // Affiche ID_station

    echo '<br>';
    $dones2 = substr($dones, 6, 22);
    $dones2 = preg_replace ('/\s/','',$dones2);
    echo $dones2;
    //echo substr($dones, 6, 22);

    echo '<br>';
    $dones2 = substr($dones, 28, 12);
    $dones2 = preg_replace ('/\s/','',$dones2);
    echo $dones2;
    //echo substr($dones, 28, 11);

    echo '<br>';
    $dones2 = substr($dones, 40, 12);
    $dones2 = preg_replace ('/\s/','',$dones2);
    echo $dones2;
    //echo substr($dones, 40, 11);

    echo '<br>';
    $dones2 = substr($dones, 52, 6);
    $dones2 = preg_replace ('/\s/','',$dones2);
    echo $dones2;
    //echo substr($dones, 52, 6);
    echo '<br>';

    if (ereg($depart1,$dones))
    {
    $i=1337;
    }

    }
    }
    fclose($openliste);
    ?>

    Ok, presque tout réussi ! Le seul petit probleme de ce code est que mnt il m'affiche le "!" de fin, et je n'arrive pas a l'enlever !


    Et je veux supprimer les parenthèse apres le nom dla station par exemple:

    mairiedelhopital(12) doit devenir mairiedelhopital !
    Pour détecter le "(" ->

    $depart1 = "(";
    if (ereg($depart1,$dones))
    {
    ...
    }
    dCd_, 11 Avril 2006
    #8
  9. Offline
    MbK_ Etudjant
    heureusement que j'était la :)

    Ezk n'est intervenu que pour mettre une image sur mes mots
    MbK_, 11 Avril 2006
    #9
  10. Offline
    Ezekiel ! Elite
    Je dirais même plus : une fonction sur tes mots :)
    Ezekiel !, 11 Avril 2006
    #10
  11. Offline
    MbK_ Etudjant
    Quel poête ce connard de Ezk
    MbK_, 11 Avril 2006
    #11
Statut de la discussion:
Fermée.