Huhu Vollpfosten
ich würde gerne mehr als ein ergebnis aus meiner abfrage bekommen
das script lautet:
<?php
$row = 1;
$fp = fopen ("filialen.csv","r");
$diff = 10000;
while ($data = fgetcsv($fp, 1000, ";")) {
//Nur bei einer bestimmten Vertriebslinie nachschauen
if ($data[0] != $Vertriebsl) continue;
//Den besten Treffer merken
if (abs($data[2] - $PLZ) < $diff) {
$result = $data;
$diff = abs($data[2] - $PLZ);
}
}
wie kriege ich das nun hin, das z.B. 5 ergebnisse die der Abfrage am nahesten liegen ausgegeben werden und nicht wie momentan unter
www.vizacon.de/coop/php.html nur eines
Du kannst $result als array benutzen und dann hängst Du in Deinem if-Zweig immer ein Ergebnis an
$result[]=$data;
Dann bekommst Du alle Treffer < $diff
Wenn Du die besten 5 haben möchtest könntest Du einen Key benutzen
$key=$diff;
$result[$key]=$data;
Dann ksort, und die ersten 5 Elemente abholen.
Damit der $key unique ist noch eine Laufvariable oder ID mit eincodieren.
So ungefähr.
Noch besser eine Datenbank benutzen.
Viele Grüße
lulu
Hier mal das ganze script:
#!/usr/local/bin/php
<table border="1">
<thead>
<tr>
<th>Filiale</th><th>Nr.</th><th>PLZ</th><th>Ort</th>
<th>Strasse</th><th>Marktleiter</th><th>Fleischabtltr.</th>
<th>Telefon</th><th>Telefax</th><th>Email</th>
</tr>
</thead>
<tbody>
<?php
$row = 1;
$fp = fopen ("filialen.csv","r");
$diff = 20000;
while ($data = fgetcsv($fp, 1000, ";")) {
//Nur bei einer bestimmten Vertriebslinie nachschauen
//if ($data[0] != $Vertriebsl) continue;
//Den besten Treffer merken
if (abs($data[2] - $PLZ) < $diff) {
$result = $data;
$diff = abs($data[2] - $PLZ);
}
}
echo "<tr>";
echo "<td>" . $result[0] . "</td>";
echo "<td>" . $result[1] . "</td>";
echo "<td>" . $result[2] . "</td>";
echo "<td>" . $result[3] . "</td>";
echo "<td>" . $result[4] . "</td>";
echo "<td>" . $result[5] . "</td>";
echo "<td>" . $result[6] . "</td>";
echo "<td>" . $result[7] . "</td>";
echo "<td>" . $result[8] . "</td>";
echo "<td>" . $result[9] . "</td>";
echo "</tr>";
kriege wenn ich deinen lösungsvorschlag einbaue nur array in den spalten angezeigt