Hallo zusammen,
ich sitze gerade an einer Monatsauswertung. Ich wollte dies über ein php Script realisieren, damit die einzelnen Mitarbeiter dies selbst ausführen können.
Die Daten werden gesammelt und dann direkt in ein Excelfile exportiert.
Mit anderen Abfragen funktioniert dies tadelos. Nur hier hab ich nen Wurm drinn.
Hier erstmal das Script:
Wenn ich den SQL String per Echo ausgeben lasse, steht das Datum richtig drinn, aber in der Excelliste werden keine Daten ausgegeben (0 Records found).
Führe ich den gleichen SQL String direkt in der Access Datenbank aus, erhalte ich ca. 57 Einträge.
Was mach ich hier verkehrt?
Vielen Dank für Eure Hinweise.
Grüße
Michael
ich sitze gerade an einer Monatsauswertung. Ich wollte dies über ein php Script realisieren, damit die einzelnen Mitarbeiter dies selbst ausführen können.
Die Daten werden gesammelt und dann direkt in ein Excelfile exportiert.
Mit anderen Abfragen funktioniert dies tadelos. Nur hier hab ich nen Wurm drinn.
Hier erstmal das Script:
PHP-Code:
<?php
$db = "MN-Gruppe";
$verbindung = mssql_connect ("IP","User", "Kennwort")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mssql_select_db('['.$db.']',$verbindung) or die ("Datenbank konnte nicht ausgewählt werden");
$start = $_POST[start];
$ende = $_POST[ende];
$select = "SELECT dbo.KHKLagerplatzbuchungen.Bewegungsdatum, dbo.KHKLagerplatzbuchungen.Artikelnummer, dbo.KHKArtikel.Artikelgruppe, dbo.KHKLagerplatzbuchungen.Bewegungsart, dbo.KHKArtikel.Matchcode, dbo.KHKLagerplatzbuchungen.MengeLager, dbo.KHKArtikel.Lagermengeneinheit
FROM dbo.KHKLagerplatzbuchungen LEFT JOIN dbo.KHKArtikel ON (dbo.KHKLagerplatzbuchungen.Mandant = dbo.KHKArtikel.Mandant) AND (dbo.KHKLagerplatzbuchungen.Artikelnummer = dbo.KHKArtikel.Artikelnummer)
WHERE (((dbo.KHKLagerplatzbuchungen.Bewegungsdatum) BETWEEN '$start' And '$ende') AND ((dbo.KHKArtikel.Artikelgruppe)='60600' Or (dbo.KHKArtikel.Artikelgruppe)='20600' Or (dbo.KHKArtikel.Artikelgruppe)='21600') AND ((dbo.KHKLagerplatzbuchungen.Bewegungsart) Like 'ZM' Or (dbo.KHKLagerplatzbuchungen.Bewegungsart)='ZF') AND ((dbo.KHKLagerplatzbuchungen.Mandant)='90'))";
$export = mssql_query($select);
$fields = mssql_num_fields($export);
for ($i = 0; $i < $fields; $i++) {
$header .= mssql_field_name($export, $i) . "\t";
}
while($row = mssql_fetch_row($export)) {
$line = '';
foreach($row as $value) {
if ((!isset($value)) OR ($value == "")) {
$value = "\t";
} else {
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
echo $data;
if ($data == "") {
$data = "\n(0) Records Found!\n";
}
header("Content-type: application/x-msdownload");
header("Content-Disposition: attachment; filename=Lagerbewegungen_Gesamt.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?>
Führe ich den gleichen SQL String direkt in der Access Datenbank aus, erhalte ich ca. 57 Einträge.
Was mach ich hier verkehrt?
Vielen Dank für Eure Hinweise.
Grüße
Michael
Kommentar