Moin!
Hier meine Aufruf in der empfänger PHP-Site:
if ($_GET["command"]=="buffer"){
$radius = $_GET['radius'];
$gastro = "select g.name, askml(g.the_geom), g.plz, g.ort, g.strasse, g.hausnummer,
g.wirt, p.preis, t.getraenk, g.ruhe, g.telefon, g.email, g.hp
from gastro g, preis p, getraenke t where
Contains (buffer(transform(the_geom,31286),$radius),
transform(GeometryFromText ( 'POINT (15.445940 47.059043)',4326), 31286 ))";
>
> Mein Problem ist: Mir kommt vor das nur die erste Get-Variable verspeichert bzw. ausgelesen werden kann!
Wir programmieren. Uns kommt nichts vor. Etwas ist oder es ist nicht.
1\. Überprüfe, was ankommt:
~~~php
<pre>
<?php print_r($_GET); ?>
</pre>
zeigt es Dir. http://php.net/manual/de/function.print-r.php
2. Dein Code ist gefährlich! Es besteht die Gefahr von "SQL-Injections"!
http://de.wikipedia.org/wiki/SQL-Injection
Besser:
# Datenbank-Ressource ist in $DB
if (isset ($_GET['command']) && $_GET['command']=='buffer' && isset($_GET['radius'])) {
$gastro = 'SELECT
`g`.`name`,
ASKML(`g`.`the_geom`),
`g`.`plz`,
`g`.`ort`,
`g`.`strasse`,
`g`.`hausnummer`,
`g`.`wirt`,
`p`.`preis`,
`t`.`getraenk`,
`g`.`ruhe`,
`g`.`telefon`,
`g`.`email`,
`g`.`hp`
FROM `gastro` AS `g`, `preis` AS `p`, `getraenke` AS `t`
WHERE CONTAINS (
BUFFER(TRANSFORM(`the_geom`,31286),
'.mysql_real_escape_string($DB, $_GET['radius']).'),
TRANSFORM(GeometryFromText ( \'POINT (15.445940 47.059043)\',4326), 31286 )
)';
}
/*
Wenn Du eine Zahl erwartest genügt statt "mysql_real_escape_string($_GET['radius'])"
auch: "($_GET['radius']*1)";
*/
http://php.net/manual/de/function.mysql-real-escape-string.php
Weiß irgendjemand woran das liegen könnte!
In Deinem Fall vermute ich einen "Typo".
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development