Hi,
ich habe ein eigenartiges Problem.
Ich habe eine Website erstellt mit php und MySQL-Datenbank.
Jetzt habe ich bei einer Abfrage einer Tabelle das Problem, dass mir der Server die Seite nicht immer komplett übermittelt.
Das bedeutet - (meine Seite besteht aus drei Teilen) - dass zum Beispiel nur der erste Teile und ein Teil des zweiten Teils übermittelt wird. Der dritte Teil gar nicht. Es fehlt auch einfach der Quellcode zum Ende der Seite, sprich
- das Schließen der offenen Tabellen
- </body>
- </html>
Manchmal kommt es auch vor, dass auf der nur halb übermittelten Seite so komische Textzeichen auftauchen, die ich nicht deuten kann.
Es ist auch immer unregelmäßig, wie viel der Seite übermittelt wird. Ist also nicht immer gleich.
Bei anderen Tabellen-Abfragen kommt das nicht vor.
Das passiert auf meiner Testumgebung auf meinem lokalen Rechner (PHP5, MySQL 4.1.12). Auf meinem Testaccount über das Web passiert das komischerweise nicht.
Weiß da jemand Rat?
Besten Dank für die Hilfe.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Eigenartige Quellcode-Ausgabe (Nicht richtig übermittelt?)
Einklappen
Neue Werbung 2019
Einklappen
X
-
Eigenartige Quellcode-Ausgabe (Nicht richtig übermittelt?)
Stichworte: -
-
Also im Header steht eigentlich nichts drin, außer
Code:<meta http-equiv="Content-Language" content="de"> <meta name="title" content=""> <meta name="author" content=""> <meta name="publisher" content=""> <meta name="copyright" content=""> <meta name="description" content=""> <meta name="Content-Language" content="de"> <meta name="keywords" content=""> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
PHP-Code:<?php
header("Cache-Control: no-cache, must-revalidate");
?>
-
Ein Gast antworteteZitat von reimondoGibt es die Möglichkeit, die Seite erst komplett auf dem Server zu generieren und dann an den Client zu übermitteln?
Zitat von reimondoINTERESSANT:
Habs eben noch mal versucht. Bei einer Aktualisierung der Seite hat er mit den Quellcode im Browserfenster angezeigt (nur die generierte html-Seite - kein PHP) in Klartext.
Ein zweites Mal konnte ich die index.php speichern - ähnlich bei einem Downloadfenster (Öffnen oder Speichern). ???
Einen Kommentar schreiben:
-
Oder kann es sein, dass es an einer zu komplexen Tabellenstruktur liegt? Ich habe schon einige verschachtelte Tabellen programmiert.
Gibt es die Möglichkeit, die Seite erst komplett auf dem Server zu generieren und dann an den Client zu übermitteln? Oder wird das sowieso so gemacht?
Habe auch shcon versucht, eine Transaktion zu verwenden, auch mysql_error() bringt keine ErgebnisseEs tritt demnach gar kein Fehler auf.
Einen Kommentar schreiben:
-
Also die 2. Abfrage kannste komplett vernachlässigen. Die ist nur da, um eine Überschrift aus der Tabelle auszulesen. Hat nichts mit rechts oder links zu tun. Ist die jeweilige Überschrift für den Mittelteil.
Also hier der geänderte Code:
PHP-Code:<?php
$sqlString = "SELECT * FROM categoryawards WHERE categoryawards.categoryid = " .$_GET['category']. " AND categoryawards.filmid = " .$_GET['id']." ORDER BY categoryawards.awards_year DESC;";
$RSawards = mysql_query($sqlString);
print "<table border='0' cellpadding='0' cellspacing='0' width='100%' class='textnormal'>";
while ($awards = mysql_fetch_array($RSawards)){
?>
<tr>
<td width="100%" colspan="2" bgcolor="#FFFFFF">[b]<font color="#000000"> <?= $awards["awards_name"] ?></font>[/b]
</td>
</tr>
...
<?
}
print "</table>";
mysql_free_result($RSawards);
?>
?>
Einen Kommentar schreiben:
-
Hab zwar schon so manches getrunken aber hoffe ich hab den Sinn verstanden. Habs etwas einfacher zusammengebastelt( aus dem 2.query bin ich nicht ganz schlau geworden aber naja) :wink:
<?php
//mit ner Haupt-Tabelle kannst das auseinanderhalten
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%' class='textnormal'>";
echo "<tr><td>";
//links und rechts bekommen ne eigenen table
echo "<table>";
//erste abfrage für links
$sqlstring1= mysql_query("select * from categoryawards where categoryid=".$_GET['category']." and filmid=".$_get['id']." order by awards_year desc");
while($output1 = mysql_fetch_assoc($sqlstring1))
{
echo "
<tr>
<td width='100%' colspan='2' bgcolor='#FFFFFF'><font color='#000000'>".$output1['awards_name']." </font>
</td>
</tr>";
}
echo "</table>";
echo "</td><td>";
//zweite abfrage für rechts
//zweite querydef. hab ich nicht genau verstanden und awards_headline wurde selektiert aber auch "filmid" wurde abgefragt?
$sqlstring2=mysql_query("select * from categoryawards where filmid =".$_GET['id']." ");
while($output1 = mysql_fetch_assoc($sqlstring1))
{
echo "
<tr>
<td width='100%' colspan='2' bgcolor='#FFFFFF'><font color='#000000'>".$output2['awards_name']." </font>
</td>
</tr>";
}
echo "</table>";
echo "</td></tr>";
?>
So müsste es wenn ich es recht verstanden habe gehen, aber ich bin eh voll
Einen Kommentar schreiben:
-
Hier kommt erstmal der Code:
PHP-Code:<?php
$sqlString = "SELECT * FROM categoryawards WHERE categoryawards.categoryid = " .$_GET['category']. " AND categoryawards.filmid = " .$_GET['id']." ORDER BY categoryawards.awards_year DESC;";
$sqlString2 = "SELECT categoryawards.awards_headline FROM categoryawards WHERE categoryawards.filmid = " .$_GET['id']." AND categoryawards.awards_headline <> '';";
$RSaward = mysql_query($sqlString2);
$RSawards = mysql_query($sqlString);
$award = mysql_fetch_array($RSaward);
print "<h1>" . $award["awards_headline"] . "</h1>";
mysql_free_result($RSaward);
print "<table border='0' cellpadding='0' cellspacing='0' width='100%' class='textnormal'>";
while ($awards = mysql_fetch_array($RSawards)){
?>
<tr>
<td width="100%" colspan="2" bgcolor="#FFFFFF">[b]<font color="#000000"><?= $awards["awards_name"] ?></font>[/b]
</td>
</tr>
...
<?
}
print "</table>";
mysql_free_result($RSawards);
?>
Wenn die Seite korrekt geladen ist, dann geht das in Millisekunden.
Der Code oben gehört in den Hauptteil. Links habe ich ein Inhaltsverzeichnis, das immer korrekt geladen wird. Rechts daneben ebenfalls noch eine Abfrage, die dann aber nicht mehr erscheint.
Der timeout ist in allen aktiven Zeilen in der php.ini auf 60 sekunden eingestellt.
NACHTRAG:
Kommt es denn tatsächlich zu einem Abfragefehler? Immerhin werden ja einige Datensätze des Abfrageergebnisses ausgegeben.
INTERESSANT:
Habs eben noch mal versucht. Bei einer Aktualisierung der Seite hat er mit den Quellcode im Browserfenster angezeigt (nur die generierte html-Seite - kein PHP) in Klartext.
Ein zweites Mal konnte ich die index.php speichern - ähnlich bei einem Downloadfenster (Öffnen oder Speichern). ???
Einen Kommentar schreiben:
-
Ein Gast antworteteini_set("max_execution_time", 120);
Setz das einfach mal lokal. Oder guck direkt in die php.ini, was der aktuelle Wert ist.
AnsonstenKannst den Code oder die wichtigen Elemente posten? Dann ist der Fehler sicher schneller gefunden wenns am code liegt. Könnte aber auch am Server liegen, wenn du´s übers web abfragst...
Einen Kommentar schreiben:
-
Wie lange dauert die Abarbeitung des Scripts?`
Evtl. ist das Zeitlimit erreicht.
Einen Kommentar schreiben:
-
Kannst den Code oder die wichtigen Elemente posten? Dann ist der Fehler sicher schneller gefunden wenns am code liegt. Könnte aber auch am Server liegen, wenn du´s übers web abfragst...
Einen Kommentar schreiben:
-
dann hast du ein fehler in einer abfrage. es kommt machmal vor, das die abfrage stirbt ohne fehlermeldung.
versuch das mal mit mysql_error() zu analysieren. deswegen fehlt dann ja auch der rest vom code.
Einen Kommentar schreiben:
Einen Kommentar schreiben: