mssql_query arbeitet nicht

Darian

Erfahrenes Mitglied
Hallo leute,

habe gerade folgendes Problem:

Wenn ich das query direkt ausführe bekomme ich ca. 20 ergebnisse, aber php will mir gar nichts zurück geben.

Hier nun der Code:

Code:
//echo "query: " . $query . "<br>";
echo "start<br>";
echo $db_khk;

$result = mssql_query($query, $db_khk);
$list=array();

echo "anzahl: " . mssql_rows_affected($db_khk);

while($row = mssql_fetch_array($result)) {
	echo "result: " . var_dump($row);
	$list[]=$row;
}
echo "ende";
return $list;

AUSGABE:

start
Resource id #16
anzahl: 0
ende

Bekomme sonst keine Fehlermeldungen, also müssste doch alles passen.

Würde mich über Infos freuen.

thx und lg
Darian
 
Hallo,

ja schon klar, ich habe ja wie du an dem echo $query sehen kannst genau das gemacht, leider ohne Erfolg.

Hier nun das Statement:

Code:
select * from KHKVKBelege where Belegdatum>=CAST('06.05.2010' AS datetime) and Belegdatum<=CAST('07.05.2010' AS datetime) and (Belegkennzeichen='VLL' or Belegkennzeichen='VSL') and (Versand='GLS' or Versand='COD') order by KHKVKBelege.A0Empfaenger

Ich finde das trotzdem irgendwie komisch...
thx und lg
Darian
 
Kenne leider die MS SQL-Syntax nixht.

Laut Sprachreferenz gibt $result bei mssql_query true oder false zurück. Was ist es bei dir?
 
Hallo,

laut Sprachreferenz gibt es ein mixed zurück, was eine resourcen id ist.

Code:
mssql result: Resource id #19

Denke das sollte passen.

Folgendes ist das Problem:

Code:
$row = mssql_fetch_array($result);
var_dump($row);
================
bool(false)

Wenn ich den Query wie folgt ändere, wird was zurück gegeben.

Code:
select * from KHKVKBelege where Belegdatum>=CAST('06.05.2010' AS datetime) and Belegdatum<=CAST('10.05.2010' AS datetime) and (Belegkennzeichen='VLL' or Belegkennzeichen='VSL') and (Versand='GLS' or Versand='COD') order by KHKVKBelege.A0Empfaenger

in

select * from KHKVKBelege where Belegdatum<=CAST('10.05.2010' AS datetime) and (Belegkennzeichen='VLL' or Belegkennzeichen='VSL') and (Versand='GLS' or Versand='COD') order by KHKVKBelege.A0Empfaenger

Also das "Belegdatum>=CAST('06.05.2010' AS datetime) and" weg lasse.

Jetzt jemand eine Idee?

thx und lg
Darian
 
Kann es sein, dass er das Datum falsch intepretiert wenn du über php gehst? Also nicht das deutsch Datum nimmt.
Dann würde aus 10.5.2010 der 5. Oktober 2010.

http://msdn.microsoft.com/en-us/library/ms187928.aspx
Da gibts den Style 104 für das deutsch Format. Ev. sollte man den mal mitgeben und zu sehen ob es daran liegen könnte. (Für CONVERT anstelle von CAST)

Beim gekürtzten Query, kommen auch die Daten die kommen sollten?
 
Es lag wirklich am Datum, habe es mit php jetzt anders zusammen gebaut, dann geht es.

Wundert mich nur trotzdem dass es im query browser ging, und über php functions nicht, dachte immer sowas gibts gar nicht.

thx und lg
Darian
 
PHP:
	echo "result: " . var_dump($row);

Kann es sein, dass die Zeile nicht ganz korrekt ist? Soweit ich weiß, gibt var_dump() selbst schon den Inhalt der Variablen aus, hat aber keinen Rückgabewert. Deine Konstruktion echo var_dump() wäre damit doppelt gemoppelt...

--> http://php.net/manual/en/function.var-dump.php

Viele Grüße,
Frezl
 
Zurück