Je reçois la double sortie d'une boucle PHP
Question
Mes données sont sorties deux fois et je ne suis pas sûr de savoir pourquoi.Il devrait s'agir d'un fname et de lname par ligne.
<?php
$row = 1;
if (($handle = fopen("nameList1.txt", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, " ")) !== FALSE) {
$num = count($data);
//$result = explode($data);
echo "<br />\n";
$row++;
for ($c=0; $c < $num; $c++) {
//echo $data[$c];
echo $data[0];
echo " ";
echo $data[1];
}
}
fclose($handle);
}
** * ** ** * ** * ** * **
Nancy AlvordNancy Alvord
Lucy HadacLucy Hadac
Laura LundgrenLaura Lundgren
Judy PigottJudy Pigott
Thomas BayleyThomas Bayley
Barbara BrownBarbara Brown
Aaron DixonAaron Dixon
Jennifer HadlockJennifer Hadlock
Molly AdolfsonMolly Adolfson
Susan AnsteadSusan Anstead
Shannon BraddockShannon Braddock
Isa D’ArleansIsa D’Arleans
Elizabeth DavisElizabeth Davis
William DonnellyWilliam Donnelly
La solution
for ($c=0; $c < $num; $c++) {
echo $data[0] . " " . $data[1];
}
Comme vous avez 2 données différentes par ligne (FNAME, LName) $ numéro est toujours égal à 2.
Alors deux fois, vous imprimerez $ Data [0] et $ données [1];)
Vous devez faire:
echo $data[0];
echo $data[0];
ou si vous voulez absolument utiliser la déclaration pour:
for ($c=0; $c < $num; $c++) {
echo $data[$c] . " ";
}
Autres conseils
Essayez ceci
$row = 1;
if (($handle = fopen("nameList1.txt", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, " ")) !== FALSE) {
$num = count($data);
//$result = explode($data);
echo "<br />\n";
$row++;
echo $data[0];
echo " ";
echo $data[1];
}
fclose($handle);
}
Essayez ceci:
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
$record['contact_email'] = $data[2];
$record['subject'] = $_REQUEST['subject'];
$record['message'] = $_REQUEST['message'];
$record['status'] = 0;
$oAdminEmail->insertQueEmail($record);
}
} while ($data = fgetcsv($handle,1000,",","'"));
Vous obtenez tous les fichiers CSV deux fois parce que, la boucle pour la boucle tandis que commence de 0 à, il doit être de 1 à 0 à 0 à
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow