CreativPur
Erfahrenes Mitglied
Hi,
ich habe ein script, welches aber leider nicht so richtig funktioniert.
Vielleicht kann mir jemand erklären, was ich da falsch mache ?
die Datenbank:
ein Script, welches schon läuft und mit der gleichen Datenbankverbindung arbeitet:
Und nun zu dem eigentlichen Sorgenkind...
Leider wird bei diesem Script nichts ausgegeben..
Wenn ich es über eine normale Datenbank-Abfrage mache, funktioniert es, leider nicht über PDO.
Ich denke mal, dass ich in dem Script etwas erweitern muss, nur weiß ich nicht genau, was es ist..
Vielen Dank für Eure Hilfe
ich habe ein script, welches aber leider nicht so richtig funktioniert.
Vielleicht kann mir jemand erklären, was ich da falsch mache ?
die Datenbank:
Code:
$db = new PDO('mysql:host=dbxxxxxx; dbname=dbxxxx;', 'dboxxxxx', 'xxxxx',
array('charset'=>'utf8'));
Code:
<?php
// Verbindung zur Datenbank aufbauen.
include "Datenbankverbindung/db_plz_umkreis.php";
?>
ein Script, welches schon läuft und mit der gleichen Datenbankverbindung arbeitet:
Code:
<?php
$abfrage = $db->query("SELECT COUNT(*) FROM `plz_de` ");
$ergebnis = $abfrage->fetch();
?>
Es wurden <?php echo $ergebnis[0] ?> Eintragungen gefunden.
Und nun zu dem eigentlichen Sorgenkind...
Code:
<?php
// die PLZ nach der wir suchen
$plz = '9220';
// der Umkreis in Km
$umkreis = 5;
// Erdradius (geozentrischer Mittelwert) in Km
$radius = 6368;
/* -------------------------- */
$sql_rad = $db->query("SELECT lon, lat FROM `plz_de` WHERE `plz` = '$plz' ");
$erg_rad = mysql_fetch_object($sql_rad);
// Umrechnung von GRAD IN RAD
$lon = $erg_rad->lon / 180 * M_PI;
$lat = $erg_rad->lat / 180 * M_PI;
// jetzt erfolgt die eigentliche Abfrage
$query = "SELECT ort, plz, (
".$radius." * SQRT(2*(1-cos(RADIANS(lat)) *
cos(".$lat.") * (sin(RADIANS(lon)) *
sin(".$lon.") + cos(RADIANS(lon)) *
cos(".$lon.")) - sin(RADIANS(lat)) * sin(".$lat.")))) AS Distance
FROM plz_de WHERE
".$radius." * SQRT(2*(1-cos(RADIANS(lat)) *
cos(".$lat.") * (sin(RADIANS(lon)) *
sin(".$lon.") + cos(RADIANS(lon)) *
cos(".$lon.")) - sin(RADIANS(lat)) * sin(".$lat."))) <= ".$umkreis."
ORDER BY Distance
";
// die Ausgabe (vereinfacht)
$sql = $db->query($query);
while( $erg = mysql_fetch_object($sql) ) {
echo '
<pre>', print_r($erg), '</pre>
';
}
?>
Leider wird bei diesem Script nichts ausgegeben..
Wenn ich es über eine normale Datenbank-Abfrage mache, funktioniert es, leider nicht über PDO.
Ich denke mal, dass ich in dem Script etwas erweitern muss, nur weiß ich nicht genau, was es ist..
Vielen Dank für Eure Hilfe
Zuletzt bearbeitet: