Problem: Finde Fehler nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
datum
dokument
ergebnis
fehler
fehlermeldung
funktionieren
gel
geschehen ergebnis
inhalt
kategorie
option
ordern
problem
rang
register
richtig helfen
tag
test
tippfehler
-
Tachen, ich hab folgendes tag/problem">Problem:
Bei diesem Script sollte eigentlich erst die ?berschrift der 1. Kategorie wiedergegeben werden, dann die Themen, dieser Kategorie. Dann die n?chste Kategorie und immer so weiter.
Die 1. Kategorie und die Themen dieser Kategorie funktionieren noch, aber irgendwie wird danach nichts mehr ausgegeben.
1. Kategorie: Test
-Themen: Test
Test
2. Kategorie: Welcome!
-Themen: Herzlich Willkommen!
Das Script:
<?
$lastkategorie = "lalala";
$lasttitel = "lalala";
echo ('
<tr><td width=400><u>Thema</u>
<td width=170><u>letzter Beitrag</u>
</td>
');
$ergebnis = mysql_query(' SELECT * FROM `forum_posts` ORDER BY `kategorie` ASC ');
while($row = mysql_fetch_array($ergebnis))
{
$id = $row['id'];
$autor = $row['autor'];
$datum = $row['datum'];
$zeit = $row['zeit'];
$kategorie = $row['kategorie'];
$titel = $row['titel'];
$inhalt = $row['inhalt'];
if ( $lastkategorie != $kategorie ) {
echo ('
<tr><td colspan=2 bgcolor="#FFFFFF" align="left">
<font color=#000000><b><a href="viewkategorie.php?kategorie='.$kategorie.'">'.$kategorie.'</a></b></font>
');
}
$lastkategorie = $kategorie;
$ergebnis = mysql_query(' SELECT * FROM `forum_posts` WHERE `kategorie` = "'.$kategorie.'" ORDER BY `id` DESC ');
while($row = mysql_fetch_array($ergebnis))
{
$titelnew = $row['titel'];
$datumnew = $row['datum'];
$zeitnew = $row['zeit'];
$autornew = $row['autor'];
if ( $lasttitel != $titelnew ) {
echo ('
<tr><td><a href="viewpost.php?titel='.$titelnew.'" target=inhalt>'.$titelnew.'</a>
<td><font size=1>am '.$datumnew.' um '.$zeitnew.' von <a href="viewprofil.php?nick='.$autornew.'" target=inhalt>'.$autornew.'</a></font>
</td>
');
}
$lasttitel = $titelnew;
}
}
?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
echo ('
<tr><td><a href="viewpost.php?titel='.$titelnew.'" target=inhalt>'.$titelnew.'</a>
<td><font size=1>am '.$datumnew.' um '.$zeitnew.' von <a href="viewprofil.php?nick='.$autornew.'" target=inhalt>'.$autornew.'</a></font>
</td>
');
echo "<tr><td><a href='viewpost.php?titel=$titelnew' target='inhalt'>$titelnew</a><td><font size='1'>am $datumnew um $zeitnew von <a href='viewprofil.php?nick=$autornew' target='inhalt'>$autornew</a></font>
</td>";
so sollte das funktionieren.....
-
jupp....
und zur Erkl?rung:
in PHP also zwischen <? und ?>
darf kein " gesetzt werden bei html tags
also wenn das angezigt werden soll muss das in einen echo befehl gepackt werden:
<?
echo"plalalala";
?>
da werden ja schon " gesetzt und wenn man die dann noch mal setzt denkt php das dort der echo befehl zu ende ist oder auch andere und deswegen wird dann ein Fehler angezeigt!! -
Das kann es doch ?berhaupt nicht sein, denn bei der 1. Kategorie und den 1. Themen klappt ja alles wunderbar,...
Edit:
Bei einer anderen Seite haben ich wohl nochmal den gleichen Fehler:
Hier soll f?r jede Kategorie eine option erstellt werden. Wenn die Kategorie allerdings eine Option hat, soll dies nat?rlich nicht geschehen.
Ergebnis:
Es werden alle Kategorien wiedergegeben (Gesamt 5mal "Test").
Es kann aber nicht an der echo-Funktion liegen, da diese ja richtig ausgef?hrt wird.
<?php
$lastkategorie = "lalala";
$ergebnis = mysql_query('SELECT * FROM forum_posts ORDER BY kategorie ASC');
while($row = mysql_fetch_array($ergebnis))
{
$kategorie = $row['kategorie'];
if ( $lastkategorie != $kategorie ) {
echo (' <option value='.$kategorie.'>'.$kategorie.'</option> ');
}
$lastkategorie = kategorie;
}
?> -
Wie w?re es, wenn du mal die Fehlermeldung postest? Sonst kann dir keiner richtig helfen, weil keiner wei? was los ist.
BTW: es hilft oft error_reporting(E_ALL); oben in den Code zu schreiben, damit auch wirklich alle Fehler eine Fehlermeldung ausgeben. -
Kennst du den Fall, dass es keine Fehlermeldung gibt?
,...
Naja, bei der 2. Seite hat sich das Problem gel?st!
Ich hatte nur $lastkategorie = kategorie;
Also das $ vergessen
Edit:
Bei der 1. Seite bestehtdas Problem weiterhin -
Von wegen keine Fehlermeldung. Eigendlich m?sste sowas kommen:
Notice: Use of undefined constant kategorie - assumed 'kategorie' in -url- on line x
Wie man sieht, ist das eine Notice und solche Fehlermeldungen werden bei Standartphpeinstellungen nicht angezeigt, deshalb sollte man immer error_reporting(E_ALL); oben in sein Dokument schreiben, dann sieht man solche Tippfehler. -
F?r dich hab ich es jetzt eingef?gt, bei der 1. Seite kommt aber keine Fehlermeldung, der Fehler bei der 2. Seite wurde bereits behoben, dass hei?t da ist es sowieso egal, ob eine Fehlermeldung gekommen w?re,...
-
Dann pasts ja, ich will ja nicht rummeckern und dich auch nicht anflamen, ich wollte nur nochmal unterstreichen, wie wichtig es vor allem in der Erstellungs- und Testphase ist, php so einzustellen, dass alle Fehlermeldungen angezeigt werden.
-
Habt ihr denn alle keine Ideen?
Also, ich hab es etwas umgeschrieben, und jetzt soll jede Kategorie einmal wiedergegeben werden mit dem Titel des letzten geschriebenen Beitrags der Kategorie:
<?
$lastkat = "lalala";
$ergebnis = mysql_query(' SELECT * FROM `forum_posts` ORDER BY `kategorie` ASC ');
while($row = mysql_fetch_array($ergebnis))
{
$id = $row['id'];
$autor = $row['autor'];
$datum = $row['datum'];
$zeit = $row['zeit'];
$kategorie = $row['kategorie'];
$titel = $row['titel'];
$inhalt = $row['inhalt'];
if ( $lastkat == $kategorie )
{ }
else{
echo ('
<tr><td colspan=2 bgcolor="#FFFFFF" align="left">
<font color=#000000><b><a href="viewkategorie.php?kategorie='.$kategorie.'">'.$kategorie.'</a></b></font>
');
$lastkat = $kategorie;
}
$ergebnis = mysql_query(' SELECT * FROM `forum_posts` WHERE `kategorie` = "'.$kategorie.'" ORDER BY `id` DESC LIMIT 1');
while($row = mysql_fetch_array($ergebnis))
{
$titelnew = $row['titel'];
$datumnew = $row['datum'];
$zeitnew = $row['zeit'];
$autornew = $row['autor'];
$kategorienew = $row['kategorie'];
echo ('
<tr><td><a href="viewpost.php?titel='.$titelnew.'" target=inhalt>'.$titelnew.'</a>
<td><font size=1>am '.$datumnew.' um '.$zeitnew.' von <a href="viewprofil.php?nick='.$autornew.'" target=inhalt>'.$autornew.'</a></font>
<tr><td>
');
}
}
?>
Ergebnis:
Test
Witzig - Witzig, was hier passiert,...
am 20.02.2005 um 12:30 von Hannes
Eigentlich sollte allerdings folgendes wiedergegeben werde:
Test
Witzig - Witzig, was hier passiert,...
am 20.02.2005 um 12:30 von Hannes
Welcome
Herlich Willkommen
am 19.02.2005 um 23:52 von Hannes
EDIT 0-checka: Doppelpost gel?scht, Inhalt des zweiten Posts:
Weiteres Script, indem es nicht funktioniert:
$kategorieposten = "ja";
$ergebnis = mysql_query('SELECT * FROM `forum_posts` WHERE `titel` = "'.$_GET['titel'].'" ORDER BY `id` DESC');
while($row = mysql_fetch_array($ergebnis))
{
$id = $row['id'];
$autor = $row['autor'];
$datum = $row['datum'];
$zeit = $row['zeit'];
$kategorie = $row['kategorie'];
$titel = $row['titel'];
$inhalt = $row['inhalt'];
$ergebnis = mysql_query(' SELECT * FROM `forum_users` WHERE `nick` = "'.$row['autor'].'" ');
while($row = mysql_fetch_array($ergebnis))
{
$register = $row['register'];
$rang = $row['rang'];
$posts = $row['posts'];
}
if ($kategorieposten == "ja") {
echo (' Kategorieposten ');
$kategorieposten = "nein";
}
echo (' Post ');
}
echo (' Antworten '); -
In PHP m?ssen HTML tags in 'tag' stehen und nicht ind "tag"!!!!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage