[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2007
    Beiträge
    42

    PHP Zendserver 6

    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
    PHP-Code:
    SUM((WOPB WADJ WRCT WISS)*BPCSF.IIML01.ISCST)WERT1
    und so enthalten. Bei der Ausgabe also
    PHP-Code:
    $Bestand=odbc_result($rs,"Bestand"); 
    wird diese Summe nicht ausgegeben.
    In der SQL Selber wird diese SUM aber verarbeitet...
    PHP-Code:
    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?

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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");
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Oct 2007
    Beiträge
    42
    @ 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...

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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

  6. #6
    Registriert seit
    Oct 2007
    Beiträge
    42
    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...

    PHP-Code:
    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 

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Werte doch mal erst odbc_error() bzw. odbc_errormsg() aus.
    Da sollte man doch erst mal ansetzen um den Fehler zu analysieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Oct 2007
    Beiträge
    42
    Nach dem ich alles neu geschrieben habe und das SQL alles in Grossbuchstaben geschrieben habe... läuft es.
    Ist das normal?

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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.

  10. #10
    Registriert seit
    Oct 2007
    Beiträge
    42
    @ 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.
    PHP-Code:
    SUM(WOPB WADJ WRCT WISS)Bestand
    in
    PHP-Code:
    SUM(WOPB WADJ WRCT WISS)BESTAND
    geändert. Und ich habe BESTAND auch angezeigt bekommen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •