pb de boucle

Répondre
rosedessables
le 30/09/2004 à 11:43
rosedessables
salut à tous

voilà j'ai écris un script , mais j'ai un probleme lorsque que j'insére les données dans une table car il m'affiche les 15 premieres lignes puis il reboucle et me réaffiche encore les 15 premiére lignes
que faire pour qy'il m'affiche la suite sans boucler

je vous donne le code que j'ai écris:

echo $j+1, " - ", $infos[$i]['table'][$j][0]," ", $infos[$i]['table'][$j][1],
"Nap: ", $infos[$i]['table'][$j][2],
" Nar: ", $infos[$i]['table'][$j][3],
" Nanr: ", $infos[$i]['table'][$j][5], "<br>\n";

// Concaténation de la date transformée, d'un espace et de l'heure
// pour l'enregistrement dans la table
$dateheure = change_format($infos[$i]['table'][$j][0]) ." ". $infos[$i]['table'][$j][1];
// Enreg dans la base de donnees
$requete = "INSERT INTO tb_appels (Idap, Appelant, date_heure, Nap, Nar, Nanr)
VALUES ('', '".$infos[$i]['nom']."', '".$dateheure."', '".$infos[$i]['table'][$j][2]."',
'".$infos[$i]['table'][$j][3]."', '".$infos[$i]['table'][$j][5]."')";
@mysql_query($requete);


merci de votre aide c trés urgent




smiley
rosedessables
le 30/09/2004 à 11:58
rosedessables
ok voici mon code entier:

<?php
include("funct.inc.php");
include("connect.inc.php");

// Initialisation de variables
$file = "appels.txt";
$lines = file($file);
$motif = "%s %s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d";
$first = true;
$o = 0;

// Pour chaque ligne du fichier texte
for ($i=0; $i < count($lines); $i++){

// Découpage de la ligne courante ($lines[$i]) suivant le motif
// sscanf renvoie un tableau
$line = sscanf(trim($lines[$i]), $motif);

if (is_array($line)) {
// Suppression des éléments vides du tableau $line
$line = array_filter($line, "nonull");
}
// 26 éléments et le premier élément contient au moins un '/' (la date)
if (count($line)==26 && eregi("/", $line[0])) {
// C'est la première ligne d'un appelant
if ($first) {
// Stocke la ligne précédente, le nom
$infos[$o]['nom'] = trim($lines[$i-1]);
$first = false;
}
// - Stocke la ligne courante, sous forme d'un tableau
$infos[$o]['table'][] = $line;

// La prochaine ligne à traiter contient 'total',
// la ligne courante est donc la dernière pour cet appelant
if (eregi("total", $lines[$i+1])){
$first = true;
$o++;
}
}
}

// Affichage simple des appels par appelant
for ($i=0; $i < count($infos); $i++){
echo "<h4>".$infos[$i]['nom']."</h4> \n";
for ($j=0; $j < count($infos[$i]['table']); $j++){
// Affichage d'une ligne
// à désactiver par la suite lorsque l'enregistrement dans la table est validé
echo $j+1, " - ", $infos[$i]['table'][$j][0]," ", $infos[$i]['table'][$j][1],
" Nap: ", $infos[$i]['table'][$j][2],
" Nar: ", $infos[$i]['table'][$j][3],
" Nanr: ", $infos[$i]['table'][$j][5], "<br>\n";

// Concaténation de la date transformée, d'un espace et de l'heure
// pour l'enregistrement dans la table
$dateheure = change_format($infos[$i]['table'][$j][0]) ." ". $infos[$i]['table'][$j][1];
// Enreg dans la base de donnees
$requete = "INSERT INTO tb_appels (Idap, Appelant, date_heure, Nap, Nar, Nanr)
VALUES ('', '".$infos[$i]['nom']."', '".$dateheure."', '".$infos[$i]['table'][$j][2]."',
'".$infos[$i]['table'][$j][3]."', '".$infos[$i]['table'][$j][5]."')";
@mysql_query($requete);
}

}

?>


[Message modifié le 30/09/2004 à 12:01 par LA GLOBULE]
LA GLOBULE
le 30/09/2004 à 12:15
LA GLOBULE
Pourrais tu nous mettre le contenu de ton fichier texte sur le wall, histoire de tester le script (y'a trop de ligne pour mes petits yeux la ^^).
rosedessables
le 30/09/2004 à 13:15
rosedessables
oui j'avais oublié de te l'a donner

la voici


http://www.lephpfacile.com/wall/lire_wall.php?wall=1680
LA GLOBULE
le 30/09/2004 à 16:59
LA GLOBULE
Je viens de lancer ton code, et cela m'affiche ceci :

Orleans_DGI_AD1
1 - 14/09/04 08:00:00 Nap: 2 Nar: 2 Nanr: 2
2 - 14/09/04 08:30:00 Nap: 3 Nar: 3 Nanr: 3
3 - 14/09/04 09:00:00 Nap: 3 Nar: 3 Nanr: 3
4 - 14/09/04 09:30:00 Nap: 3 Nar: 3 Nanr: 3
5 - 14/09/04 10:00:00 Nap: 3 Nar: 3 Nanr: 3
6 - 14/09/04 10:30:00 Nap: 5 Nar: 4 Nanr: 4
7 - 14/09/04 11:00:00 Nap: 1 Nar: 1 Nanr: 1
8 - 14/09/04 11:30:00 Nap: 3 Nar: 3 Nanr: 3
9 - 14/09/04 12:00:00 Nap: 1 Nar: 0 Nanr: 0
10 - 14/09/04 13:00:00 Nap: 2 Nar: 1 Nanr: 1
11 - 14/09/04 14:00:00 Nap: 3 Nar: 3 Nanr: 3
12 - 14/09/04 14:30:00 Nap: 4 Nar: 3 Nanr: 3
13 - 14/09/04 15:00:00 Nap: 4 Nar: 3 Nanr: 3
14 - 14/09/04 15:30:00 Nap: 4 Nar: 4 Nanr: 4
15 - 14/09/04 16:00:00 Nap: 4 Nar: 4 Nanr: 4
16 - 14/09/04 16:30:00 Nap: 3 Nar: 3 Nanr: 3

Orleans_Notaire_DGI_AD1
1 - 14/09/04 09:30:00 Nap: 2 Nar: 2 Nanr: 2
2 - 14/09/04 10:30:00 Nap: 2 Nar: 1 Nanr: 1
3 - 14/09/04 11:30:00 Nap: 3 Nar: 3 Nanr: 3
4 - 14/09/04 14:30:00 Nap: 3 Nar: 3 Nanr: 3
5 - 14/09/04 15:30:00 Nap: 1 Nar: 1 Nanr: 1
6 - 14/09/04 16:30:00 Nap: 2 Nar: 2 Nanr: 2

Orleans_RoNR_AD1
1 - 14/09/04 12:00:00 Nap: 1 Nar: 1 Nanr: 1


Donc tout est affiché (comparé au fichier texte).
Nan ?
rosedessables
le 30/09/2004 à 17:20
rosedessables
moi dans ma table de bdd il ne m'affiche pas ça du tout il m'affiche le début jusq'a 15 puis il reboucle il réaffiche encore le début je ne comprends pas.

smiley
LA GLOBULE
le 30/09/2004 à 17:36
LA GLOBULE
Au final, j'ai eu 23 éléments dans ma table, c'est bon ?

PS : le texte que je t'ai donné precedemment, c'est ce que php m'a ecrit à l'ecran quand j 'ai execute le script.

[Message modifié le 30/09/2004 à 17:36 par LA GLOBULE]
Répondre
LoadingChargement en cours