Ich connecte auf eine Accessdatenbank über einen ODBC Treiber.
Mein Problem ist, dass ich immer nur bis "befor data" komme und die Schlaufe nicht ausgeführt wird..
Wenn ich das generierte SQL in eine Access Abfrage kopiere funktioniert alles bestens. Ich bekomme die gesuchten Resultate.
Das SQL Script sieht bei der Ausgabe so aus:
SELECT zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag FROM zavs_nfg INNER JOIN (zavs_gem INNER JOIN zav_gem_txt_dds ON zavs_gem.BFS = zav_gem_txt_dds.BFS) ON zavs_nfg.ID = zavs_gem.NfG_ID GROUP BY zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag HAVING (((zavs_gem.NfG_ID)=1) AND ((zav_gem_txt_dds.Stichtag) Like '2006*' And (zav_gem_txt_dds.Stichtag)>20060531));
Mein Problem ist, dass ich immer nur bis "befor data" komme und die Schlaufe nicht ausgeführt wird..
Wenn ich das generierte SQL in eine Access Abfrage kopiere funktioniert alles bestens. Ich bekomme die gesuchten Resultate.
PHP-Code:
<?php
$con = odbc_connect('qms','','');
$Jahr = 2006;
$nfg = 1;
if ($con)
{
$sql="SELECT zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag FROM zavs_nfg INNER JOIN (zavs_gem INNER JOIN zav_gem_txt_dds ON zavs_gem.BFS = zav_gem_txt_dds.BFS) ON zavs_nfg.ID = zavs_gem.NfG_ID GROUP BY zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag HAVING (((zavs_gem.NfG_ID)=".$nfg.") AND ((zav_gem_txt_dds.Stichtag) Like '".$Jahr."*' And (zav_gem_txt_dds.Stichtag)>".$Jahr."0531));";
$exc = odbc_exec($con,$sql);
if($exc)
{
echo "befor data";
while($row = odbc_fetch_row($exc))
{
$nfg_bfs = odbc_result ($exc, "BFS");
echo "BFS: ".$nfg_bfs;
}
}
}
?>
SELECT zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag FROM zavs_nfg INNER JOIN (zavs_gem INNER JOIN zav_gem_txt_dds ON zavs_gem.BFS = zav_gem_txt_dds.BFS) ON zavs_nfg.ID = zavs_gem.NfG_ID GROUP BY zav_gem_txt_dds.BFS, zavs_gem.NfG_ID, zavs_nfg.Name, zavs_gem.Gemeinde, zavs_gem.Preise, zav_gem_txt_dds.Stichtag HAVING (((zavs_gem.NfG_ID)=1) AND ((zav_gem_txt_dds.Stichtag) Like '2006*' And (zav_gem_txt_dds.Stichtag)>20060531));