PDA

View Full Version : PHP Zendserver 6



DISCOME
20-02-14, 21:18
Hallo zusammen,

wir haben auf unserer "AS400" nun den Zendserver installiert. Die PHP dateien lagen bisher auf einem Windowsserver und liefen über die ODBC Schnittstelle. Alles war bis heute kein Problem. Nun haben wir die Scripte abgeändert und auf dem ZendServer laufen lassen. Es klappt fast alles ohne Probleme. FAST.

In einigen SQL Abfragen ist ein

SUM((WOPB + WADJ + WRCT - WISS)*BPCSF.IIML01.ISCST)WERT1,
und so enthalten. Bei der Ausgabe also

$Bestand=odbc_result($rs,"Bestand");
wird diese Summe nicht ausgegeben.
In der SQL Selber wird diese SUM aber verarbeitet...

order by WERT1 DESC
fetch first 10 rows only
Die Ausgabe erscheint ohne $Bestand! Der rest wird ganz normal angezeigt.
Wenn ich das Script auf dem alten Windowsserver laufen lasse ist alles gut und es wird alles angezeigt.
Ich habe den USER QTMHHTTP schon auf die CCS ID 1141 gestellt weil es ja sonst probleme geben kann... (Die CCS ID ist ja sonst 65535)

Das Problem mit den fehlenden Zahlenwerten ist bei anderen PHP Abfragen genauso vorhanden.
Das SQL arbeitet ohne Probleme nur die Ausgabe macht Probleme...

Kann man mir noch Helfen?

andreaspr@aon.at
21-02-14, 08:02
Hallo,

Was bekommst du ausgegeben, wenn du dir (z.B.: mit odbc_result_all(...)) alles ausgeben lässt?
Wo liegen die Tabellen auf der AS/400 oder greifst du auf eine andere DB zu?

lg Andreas

Fuerchau
21-02-14, 08:07
Ich denke mal, du musst die Feldnamen mal prüfen:

SUM((WOPB + WADJ + WRCT - WISS)*BPCSF.IIML01.ISCST)WERT1

Das Ergebnisfeld heißt "WERT1", du müsstest also das Ergbnis so laden:
odbc_result($rs,"WERT1");

DISCOME
21-02-14, 14:21
@ Fuerchau
Sorry, das odbc_result ist nur kopiert. Das ist also richtig vorhanden.

@Andreas
Die DB liegt auf der AS400 nur es zwei verschiedene Schemas die ich abfrage.
Das Ding ist halt wenn ich die selbe PHP Datei nehme und mit dem Windowsserver laufen lasse (ohne Zend) geht es... und auf dem AS400 ZendServer geht es nicht richtig...

andreaspr@aon.at
21-02-14, 14:34
Du greifst auf die Spalte mit DB.Tabelle.Spalte zu (BPCSF.IIML01.ISCST) was passiert wenn du ohne der DB drauf zugreifst? (IIML01.ISCST)
Hast du schon probiert das SQL im STRSQL laufen zu lassen?

Lass den DB-Monitor mitlaufen oder schau in das JOBLOG hinein. Eventuell gibt es einige Warnungen die einfach überlesen werden.

lg Andreas

DISCOME
21-02-14, 14:47
Im SQL läuft es. Er sortiert ja auch richtig. Es hängt nur an der Ausgabe... :-(

Wenn ich BPCSF weg lasse passiert nix... ist aber klar. über den Navigater läuft das SQL ohne probleme und ich bekomme alle Werte angezeigt. Muss also eine umsetzung zu PHP sein...



SELECT BPCSF.IIML01.IVEND,
SUM(WOPB + WADJ + WRCT - WISS)Bestand,
SUM((WOPB + WADJ + WRCT - WISS)*BPCSF.IIML01.ISCST)WERT1,
BPCSF.IIML01.IBUYC,
BPCSF.AVML01.VNDNAM,
BPCSF.AVML01.VNDAD1,
BPCSF.AVML01.VNDAD2,
BPCSF.AVML01.VSTATE,
BPCSF.AVML01.VPOST

FROM BPCSF.IWIL01
LEFT JOIN BPCSF.IIML01
ON WPROD = IPROD
LEFT JOIN BPCSF.AVML01
ON BPCSF.IIML01.IVEND = VENDOR
where WWHS='E1'
and (WOPB + WADJ + WRCT - WISS) >'0'
Group by BPCSF.IIML01.IVEND,
BPCSF.AVML01.VNDNAM,
BPCSF.AVML01.VNDAD1,
BPCSF.AVML01.VNDAD2,
BPCSF.AVML01.VSTATE,
BPCSF.AVML01.VPOST,
BPCSF.IIML01.IBUYC
order by WERT1 DESC
fetch first 10 rows only

Fuerchau
21-02-14, 16:05
Werte doch mal erst odbc_error() bzw. odbc_errormsg() aus.
Da sollte man doch erst mal ansetzen um den Fehler zu analysieren.

DISCOME
21-02-14, 17:21
Nach dem ich alles neu geschrieben habe und das SQL alles in Grossbuchstaben geschrieben habe... läuft es.
Ist das normal?

andreaspr@aon.at
21-02-14, 18:27
Groß/Kleinbuchstaben sind dabei egal. Wie schon gesagt --> JOBLOG und DB-Monitor kontrollieren.
Bzw. auch die odbc-error Funktionen.
Im PHP Zend-Log könnten auch informationen stehen, je nachdem welches Error-Level du eingestellt hast.

DISCOME
21-02-14, 18:53
@ Andreas
habe gerade mit mit einen Dozenten geschrieben und er meint das es mit der GROSSSCHREIBUNG zu tun hat.
Selbstbenamte Spalten sollten immer GROSS geschrieben werden. Und ich habe es in der Ursprungsdatei geändert und es geht wirklich.

SUM(WOPB + WADJ + WRCT - WISS)Bestand,

in

SUM(WOPB + WADJ + WRCT - WISS)BESTAND,

geändert. Und ich habe BESTAND auch angezeigt bekommen.