Petit programme de remplissage de BDD :X

Statut
N'est pas ouverte pour d'autres réponses.

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:
 
D

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...)
 
D

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 ?..
 
1er
OP
dCd_

dCd_

Touriste
dai_the flu a dit:
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 ?..
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 :-(
}
 
D

dai_the flu

ex membre
ok :roll:


pas si simple en fait ^^
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
 

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.
 

Ezekiel !

Elite
MbK_ a dit:
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.
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
}
 
1er
OP
dCd_

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))
{
...
}
 

MbK_

Etudjant
heureusement que j'était la :)

Ezk n'est intervenu que pour mettre une image sur mes mots
 

Ezekiel !

Elite
MbK_ a dit:
heureusement que j'était la :)

Ezk n'est intervenu que pour mettre une image sur mes mots
Je dirais même plus : une fonction sur tes mots :)
 

MbK_

Etudjant
Ez3kieL a dit:
MbK_ a dit:
heureusement que j'était la :)

Ezk n'est intervenu que pour mettre une image sur mes mots
Je dirais même plus : une fonction sur tes mots :)
Quel poête ce connard de Ezk
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut