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]
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] PHP4 vs PHP5
Einklappen
Neue Werbung 2019
Einklappen
X
-
Sieht übrigends so aus, als ob du an deinen Abfragen auch Einiges verbessern könntest. Habs allerdings nur mal so überflogenund bin nicht sonderlich fit in Sachen SQL. Es scheint ja z.B. zu jedem tbl_kontingente.K_FIndex nur einen Flug zu geben. Du berarbeitest das Ergebnis dieser Abfrage zwar in einer Schleife, weist aber in jedem Durchlauf den jeweiligen Datenatz den selben Variablen zu. In dem Fall wäre ein LIMIT angebracht. Allerdings kannst du diese Abfrage auch direkt in SQL mit der ersten Abfrage (Kontingente) verknüpfen. Die zweite lässt sich, denke ich, auch damit verknüpfen, weiß ich aber nicht. Und den Flughafen kannst du auch direkt in der Abfrage nach dem Flug mit ermitteln, soweit ich das sehe.
Poste doch einfach mal ein Dump mit ein paar Datensätzen, deinem genauen Ziel und deinem bisherigen Code ins MySQL-Forum. Da kannst du ziemlich sicher einiges rausholen.
Aber, wie gesagt, ich bin kein SQL-Freak - leider.
Basti
Einen Kommentar schreiben:
-
Ein Gast antwortetenp immer gern
Einen Kommentar schreiben:
-
Ein Gast antworteteok, vielen Dank für die ausführliche Hilfe,
hab nun erstmal genug stoff, den ich mir anschauen muss
grüße
Lukin
Einen Kommentar schreiben:
-
Ein Gast antwortete@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 )
Einen Kommentar schreiben:
-
Ein Gast antwortete -
Ein Gast antworteteHm, 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>";
} ?>
Einen Kommentar schreiben:
-
Ein Gast antwortetesinnvoller 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
Einen Kommentar schreiben:
-
Ein Gast antworteteDieses Zend kenne ich nicht, muss wahrscheinlich auf dem server installiert sein?
Habt ihr eventuelle ne Seite wo was drüber lesen kann?
Einen Kommentar schreiben:
-
Ein Gast antworteteHola,
wie gesagt, die Konstanten waren es tatsächlich.
Vielen Dank an Euch!!
Einen Kommentar schreiben:
-
Ein Gast antworteteIch 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]
?>
Einen Kommentar schreiben:
-
Ein Gast antworteteam 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
Einen Kommentar schreiben:
-
Ein Gast antworteteIch 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++;
}
?>
Einen Kommentar schreiben:
-
Re: PHP4 vs PHP5
Würde mich sehr Wundern, dass es an PHP5 liegt. Zumindest ist mir nichts dergleichen bekannt.
Zitat von LukinKann man da irgendwas machen?
Zitat von Lukinimmer wenn ein bisl mehr PHP benötigt wird um Daten zu verarbeiten und diese darzstellen
Basti
Einen Kommentar schreiben:
Einen Kommentar schreiben: