Я пытаюсь написать некоторый код, который получает файл CSV, тянет соответствующий столбец почтового индекса, затем ищет этот почтовый индекс в базе данных MySql, которая имеет поля долготы и широты, и сохраняет их в файле XML, чтобы его можно было использовать в другомпрограмма
Я думаю, что этот фрагмент кода все работает, но по какой-то причине он выводит только последнее поле запроса:
//Open the file.
$fileHandle = fopen("test.csv", "r");
$postcode = array();
while (($row = fgetcsv($fileHandle, 0, ",")) !== FALSE) {
array_push($postcode, $row[40]);
}
$postcodefil = (array_unique($postcode));
$postcodefil = str_replace(' ', '', $postcodefil);
$postcodefil = preg_replace('/\s+/', '', $postcodefil);
//print_r($postcodefil);
foreach ($postcodefil as $value) {
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT postcode, latitude, longitude FROM postcode WHERE postcode='$value' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$myfile = fopen("test.xml", "w") or die("Unable to open file!");
$lat = $row["latitude"];
$lng = $row["longitude"];
fwrite($myfile, $lat."testss".$lng."\n");
echo $lat;
echo $lng;
echo "<br />";
}}
} // end of foreach
$conn->close();
, однако, когда я его запускаю, эхо корректно
50.822398-0.139938
51.444908-1.295341
50.841951-0.842508
51.308504-0.551835
etc.... etc...
но Fwrite просто выводит последнюю строку
51.120916testss-0.599545
Я совершенно запутался из-за этого.Пожалуйста, прости меня, если это что-то простое, что я посмотрел заранее и спасибо заранее.