Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] PHP4 vs PHP5

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] PHP4 vs PHP5

    Hallo zusammen,

    ich habe eine Webanwendung unter PHP4 geschrieben. Leider hat sich der
    ohne es zu wissen für eine Provider entschieden, der auf seinem Server PHP5 laufen hat.

    Problem: Die Seite läuft zwar, aber immer wenn ein bisl mehr PHP benötigt wird um Daten zu verarbeiten und diese darzstellen kommt es zu Wartezeiten von bi zu 30 secs, auf meinem server der PHP4 hat läuft die Sache wie am Schnürchen....

    Kann man da irgendwas machen? Kann das +berhaupt an der PHP- Version liegen?

    Ich bin für jede Hilfestellung dankbar

    Gruß,

    Lukin[/i]


  • #2
    liegt eventuell an "unsauberen" code ?

    überarbeiten sollte helfen

    Kommentar


    • #3
      hmm, ok,

      kannst du sagen, worauf ich bei der korrektur achten sollte?
      wie gesagt, mit php4 läufts ja optimal...

      Kommentar


      • #4
        Re: PHP4 vs PHP5

        Würde mich sehr Wundern, dass es an PHP5 liegt. Zumindest ist mir nichts dergleichen bekannt.

        Zitat von Lukin
        Kann man da irgendwas machen?
        In jedem Falls solltest du deine Erkenntnis ein wenig näher eingrenzen:
        Zitat von Lukin
        immer wenn ein bisl mehr PHP benötigt wird um Daten zu verarbeiten und diese darzstellen
        ...und natürlich sofort deinen Provider wechseln, klar.

        Basti

        Kommentar


        • #5
          Ich poste mal ein Script, pflückt sich einige Daten, und erstellt daraus einen einfache Tabelle,... der Vorgang dauert 30sec....



          PHP-Code:
          <?php
          $ar_f
          =array();
              
          $count=0;
              
          $anz=0;
              
          $result mysql_query("SELECT `K_FIndex`,`K_Plaetze`,`K_Index` FROM `tbl_kontingente` WHERE `K_KNr`='$user_kdnr'" );
              while(
          $row mysql_fetch_row($result)) {
              
                  
          $ar_f[$count][findex]=$row[0];
                  
          $ar_f[$count][plaetze]=$row[1];
                  
          $ar_f[$count][kindex]=$row[2];
                  
                  
          $result2 mysql_query("SELECT `PF_KIndex` FROM `tbl_personen_fluege` WHERE `PF_KIndex`='$ar_f[$count][kindex]'" );
                  
          $count2=mysql_num_rows($result2);
                  
          $anz+=$count2;
                  
          $ar_f[$count][anz]=$count2;
                  
          $count++;
              }

              
          $count=0;

              while(
          $count<count($ar_f)){
              
          $findex=$ar_f[$count][findex];

              
              
          $result mysql_query("SELECT `FNr`,`FDatum`,`Strecke` FROM `tbl_fluege` WHERE `FIndex`='$findex'" ) or die (mysql_error());
              while(
          $row mysql_fetch_row($result)) {
                  
          $ar_f[$count][fnr]=$row[0];
                  
          $pos=strpos($row[1]," ");
                  
          $ar_f[$count][fdatum]=substr($row[1],0,$pos);
                  
          $ar_f[$count][strecke]=$row[2];
                  
                  
              
              }
              
              
              
              
          $result mysql_query("SELECT `APT_Airport`,`APT_Zeit`,`APT_Zeit_Ankunft`,`APT_Option` FROM `tbl_fluege_apt` WHERE `APT_FIndex`='$findex'" )or die (mysql_error());
              while(
          $row mysql_fetch_row($result)) {
              
              if(
          $row[3]=="0Start"){
              
          //Daten Abflughafen
                  
          $ar_f[$count][airport_start]=$row[0];
                  
          $ar_f[$count][airport_start_ab]=$row[1];
                  
          $ar_f[$count][airport_start_an]=$row[2];
              }else if(
          $row[3]=="1ZWS"){
              
          //Daten erste Zwischenlandung
              
          $ar_f[$count][airport_1zws]=$row[0];
                  
          $ar_f[$count][airport_1zws_ab]=$row[1];
                  
          $ar_f[$count][airport_1zws_an]=$row[2];
              }else if(
          $row[3]=="2ZWS"){
              
          //Daten zweite Zwischenlandung
                      
          $ar_f[$count][airport_2zws]=$row[0];
                  
          $ar_f[$count][airport_2zws_ab]=$row[1];
                  
          $ar_f[$count][airport_2zws_an]=$row[2];
              }else if(
          $row[3]=="Ziel"){
              
          //Daten Zielflughafen
                  
          $ar_f[$count][airport_ziel]=$row[0];
                  
          $ar_f[$count][airport_ziel_ab]=$row[1];
                  
          $ar_f[$count][airport_ziel_an]=$row[2];
              }
              }    
              
              
              echo 
          "<tr onMouseOver=\"f_drin(this)\" onMouseOut=\"f_raus(this)\" onClick=\"f_detail('".$ar_f[$count][fdatum]."','".$ar_f[$count][fnr]."','".$ar_f[$count][plaetze]."','".$ar_f[$count][anz]."','".$ar_f[$count][strecke]."','".$ar_f[$count][airport_start]."','".$ar_f[$count][airport_start_an]."','".$ar_f[$count][airport_start_ab]."','".$ar_f[$count][airport_ziel]."','".$ar_f[$count][airport_ziel_an]."','".$ar_f[$count][airport_ziel_ab]."','".$ar_f[$count][airport_1zws]."','".$ar_f[$count][airport_1zws_an]."','".$ar_f[$count][airport_1zws_ab]."','".$ar_f[$count][airport_2zws]."','".$ar_f[$count][airport_2zws_an]."','".$ar_f[$count][airport_2zws_ab]."')\" class=\"pointer\">
                
                <td height=\"20\"><div align=\"center\">"
          .$ar_f[$count][fdatum]."</div></td>
                      <td><div align=\"center\">"
          .$ar_f[$count][fnr]."</div></td>
                      <td><div align=\"center\">"
          .$ar_f[$count][plaetze]."</div></td>
                      <td width=\"85\"><div align=\"center\">"
          .$ar_f[$count][fdatum]."</div></td>
                      <td width=\"85\"><div align=\"center\">"
          .$ar_f[$count][airport_start]."</div></td>
                      <td><div align=\"center\">"
          .$ar_f[$count][airport_ziel]."</div></td>
                   </tr>"

              
              
          $count++;
              }

          ?>

          Kommentar


          • #6
            am anfang error_reporting(E_ALL)

            so das auch die NOTICE angezeigt werden
            ( die aufgetretenen "Fehler/Warnungen/Hinweise" bearbeiten )

            dies sollte meist schon helfen ( sollte Zend bereitstehen mal nach Performance-"bremsen" suchen )

            mfg


            [edit]

            und mit "Konstanten als arrayindex" [findex] sollte man sich nochmal überlegen

            $row[3]=="1ZWS" strings beim vergleich immer auf die linke seite
            ( hat nichts mit php5 zutun sondern mit sauberem code )
            so könnte der fehler $row[3]="1ZWS" nicht passieren da einem string einen wert zuweisen mit einer fehlermessage belohnt wird

            alle diese kleinigkeiten helfen dabei das der code unter welcher php version auch immer sauber/schnell läuft

            Kommentar


            • #7
              Ich habe gerade mal die benannten Array-Elemente in Annführungszeichen gesetz und sie da, es läuft wesentlich schneller!!!

              $ar_f[$count]['fnr']


              ?>[/php]
              ansatt

              PHP-Code:
              <?php
              $ar_f
              [$count][fnr]
              ?>

              Kommentar


              • #8
                Hola,

                wie gesagt, die Konstanten waren es tatsächlich.

                Vielen Dank an Euch!!

                Kommentar


                • #9
                  Dieses Zend kenne ich nicht, muss wahrscheinlich auf dem server installiert sein?

                  Habt ihr eventuelle ne Seite wo was drüber lesen kann?

                  Kommentar


                  • #10
                    sinnvoller einsatz von klammern und quotes sollte auch etwas helfen

                    bsp.:
                    du schreibst schon in double quotes dann ist es auch besser deren vorteil zu nutzen

                    echo "...'".$ar_f[$count][fdatum]."'

                    echo "...'{$ar_f[$count]['fdatum']}'

                    und bedenke das alles in double quotes von php geparst wird da sollte dann eine überlegungung von sinnvollem einsatz von single quotes auch ein paar vorteile bringen

                    mfg

                    Kommentar


                    • #11
                      Hm, Wäre es sinnvoll alles was ich an html ausecho, andres zu schreiben:

                      zB:

                      <?
                      for($count=0;$count<10;$count++){
                      ?>
                      <td><?echo $count ?></td>

                      <? } ?>

                      anstatt

                      <?
                      for($count=0;$count<10;$count++){
                      echo "<td>".$count."</td>";

                      } ?>

                      Kommentar


                      • #12
                        naja bei interesse an zend

                        http://swbulletin.no-ip.org/z_pdf/

                        Kommentar


                        • #13
                          @Lukin

                          klare antwort: nein
                          da es geschmackssache ist ob html in php oder php in html
                          jemand der aus der programmierer ecke bsp.: C kommt
                          wird sicher lieber html in php schreiben
                          andere bevorzugen html files zu schreiben und mit phpcode zu erweitern
                          ich pers. mag es lieber php und html zu trennen ( templates )

                          - leichte wartbarkeit von code
                          - programmstabilität
                          - einfache erweiterung von html (tpl)
                          - leichtes/einfaches ändern von design usw.

                          eventuell wäre eine überlegung mit heredocs zu arbeiten interessant ( oder gar eine template engine einzusetzten )

                          Kommentar


                          • #14
                            ok, vielen Dank für die ausführliche Hilfe,

                            hab nun erstmal genug stoff, den ich mir anschauen muss

                            grüße

                            Lukin

                            Kommentar


                            • #15
                              np immer gern

                              Kommentar

                              Lädt...
                              X