 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
01.07.2005, 17:08
|
#1
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Text UND PHP aus DB lesen?
Hallo an die Dynamik-Experten!
Ich scheine Denkblockade zu haben. Folgendes: Ich habe eine index.php, die aus einer SQL-Datenbank je nach URL-ID Inhalt anzeigen soll. Das tut sie auch. Nun habe ich eben im DB-Feld „content“ sowohl HTML, als auch PHP-Befehle (siehe unten Code 2) gehabt.
Wenn ich nun sage:
PHP-Code:
<?php $Artikel = $row_inhalte['content'];
// $Artikel = ereg_replace("ß", "ß", $Artikel);
$Artikel = ereg_replace("ö", "ö", $Artikel);
$Artikel = ereg_replace("ä", "ä", $Artikel);
$Artikel = ereg_replace("ü", "ü", $Artikel);
$Artikel = ereg_replace("Ö", "Ö", $Artikel);
$Artikel = ereg_replace("Ä", "Ä", $Artikel);
$Artikel = ereg_replace("Ü", "Ü", $Artikel);
echo $Artikel; ?>
wird die folgende Tabelle zwar angezeigt, die PHP-Befehle jedoch ignoriert.
HTML-Code:
<table width="520" border="0" cellspacing="0" cellpadding="0">
<tr>
<th height="25" style="padding-left: 8px;"><b>Datum</b></th>
<th height="25"><b>Veranstaltung</b></th>
<th height="25"><b>Ort</b></th>
</tr>
<?php do { ?>
<tr>
<td height="5" colspan="3"> </td>
</tr>
<tr>
<td width="150" height="40" valign="top" style="padding-left: 8px;"><b><?php echo $row_kalender['wochentag']; ?>, <?php echo $row_kalender['datum']; ?></b><br> <?php echo $row_kalender['uhrzeit']; ?> </td>
<td width="270" height="40" valign="top" >
<p class="event"><?php echo $row_kalender['veranstaltung']; ?></p></td>
<td width="100" height="40" valign="top"><?php echo $row_kalender['ort']; ?></td>
</tr>
<?php if (isset($row_kalender['bemerkung'])) { ?>
<tr valign="middle">
<td height="25" style="padding-left: 8px;"><em>Bemerkungen:</em></td>
<td colspan="2" class="bemerkung"><?php echo $row_kalender['bemerkung']; ?></td>
</tr>
<?php } ?>
<tr valign="middle">
<td height="25" colspan="3" style="padding-left: 8px;"><hr size="1" noshade color="#cc0000"></td>
</tr>
<?php } while ($row_kalender = mysql_fetch_assoc($kalender)); ?></table>
<?php } // Show if recordset not empty
else echo "<p>Es liegen zur Zeit keine gespeicherten Termine vor.</p>"; ?>
Meine Hypothese: Der echo-Befehl gibt zwar Datenbankfelder wieder, ist aber nicht in der Lage Code zu verarbeiten. Richtig? Hilfe!
Was muss ich tun, damit meine PHP-Codes aus der Datenbank-Tabelle gelesen werden und die Tabelle (Code 2) somit gefüllt wird? Gibt es da einen anderen PHP-Befehl? (Wie ihr vielleicht merkt, habe ich gerade erst mit PHP begonnen ...)
Viele Grüße,
Torben
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
Geändert von th_03 (01.07.2005 um 20:22 Uhr).
|
|
|
01.07.2005, 17:25
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Der Befehl lautet eval
Du hast ja alles in einem String. Die Funktion wertet den String aus, als wenn es PHP-Code wäre.
|
|
|
01.07.2005, 17:48
|
#3
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Ähm ... danke, aber ich bin zu blöd ... das klappt nicht:
Parse error: syntax error, unexpected T_LNUMBER in E:\apachefriends\xampp\htdocs\SC_Rothenhausen_2005\index.php(101) : eval()'d code on line 4
Ich bekomme eine Fehlermeldung, demnach ist
PHP-Code:
eval ("\$Artikel = \"$Artikel\";");
echo $Artikel; ?>
nicht richtig. Ich bin total verwirrt. Wie muss das denn jetzt heißen? Oh Gott, ist das peinlich. Das kommt davon, wenn man seit heute Morgen am Rechner sitzt  .
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
Geändert von th_03 (01.07.2005 um 20:08 Uhr).
|
|
|
01.07.2005, 18:54
|
#4
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Nebenfrage - wieso ersetzt Du die Umlaute umständlich "manuell", und nicht z.B. mit htmlentities?
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
01.07.2005, 19:59
|
#5
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
@Boris: Nun, ich glaube, dass hing damit zusammen, dass die Ausgabe mit htmlentities nicht nur umgeformte Umlaute, sondern auch andere Sonderzeichen zur Folge hatte ... auf jeden Fall sah es nicht so aus, wie es hätte aussehen sollen.
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
01.07.2005, 20:10
|
#6
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Also, kleiner Nachtrag:
Jetzt wird zwar der HTML-Teil der Datenbank-Zelle ausgegeben, also auch die Tabelle an sich, aber trotzdem bleibt sie leer. Die PHP-Befehle werden nach wie vor im Quelltext angezeigt, aber nicht ausgeführt 
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
01.07.2005, 20:38
|
#7
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
so wärs ja auch ein büschen einfach
Du hast einen HTML-Block mit eingebettetem php.
extrahiere den <?php ... ?> , lösche die Tags und führe nur diesen Block in eval aus.
|
|
|
01.07.2005, 21:11
|
#8
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Wie soll denn die PHP-Befehle extrahieren? Ich verstehe jetzt gar nichts mehr. Wenn ich nun ... nein, zu suspekt, was ich hier gerade denke. Es tut mir Leid, aber im normalen Leben bin ich nicht so schwer von Begriff ... hoffe ich für meine Mitmenschen zumindest. Kannst du mit bitte noch mal ganz langsam für ganz Blöde erklären, wie das geht, was du da meinst.
Nochmal eine Notiz für mich: Die PHP-Befehle befinden sich in einer HTML-Tabelle, die angezeigt wird. Immerhin ein halber Erfolg ;-).
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
03.07.2005, 18:26
|
#9
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Also, in einem anderen Forum wurde mir folgender Tipp gegeben:
PHP-Code:
eval('?>'.$Artikel.'<?); ?>
... funktioniert aber auch nicht. Funktioniert eval überhaupt mal irgendwann? Jetzt motzt eval rum, weil er eine Klammer nicht haben will:
Parse error: syntax error, unexpected '}' in E:\apachefriends\xampp\htdocs\SC_Rothenhausen_2005\index.php(101) : eval()'d code on line 31
Was soll denn das ständig? Kann das nicht einfach mal funktionieren?
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
03.07.2005, 18:33
|
#10
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Zitat:
|
Was soll denn das ständig? Kann das nicht einfach mal funktionieren?
|
Solang Dir nicht klar ist, wo der Fehler liegt, nicht ... denn er bemängelt eine } Klammer, und keinen Teil des von dir gezeigten Codes
Zeig uns doch mal alles! 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
03.07.2005, 18:51
|
#11
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Na ja, gut, das mit der }-Klammer ist mir schon klar. Bin sehr frustiert. Also, jetzt gibts also den gesamten Code der index.php (du hast es ja so gewollt  ):
PHP-Code:
<?php require_once('Connections/SC_R_2005.php'); ?>
<?php
$maxRows_news = 3;
$pageNum_news = 0;
if (isset($HTTP_GET_VARS['pageNum_news'])) {
$pageNum_news = $HTTP_GET_VARS['pageNum_news'];
}
$startRow_news = $pageNum_news * $maxRows_news;
mysql_select_db($database_SC_R_2005, $SC_R_2005);
$query_news = "SELECT * FROM news ORDER BY datum DESC";
$query_limit_news = sprintf("%s LIMIT %d, %d", $query_news, $startRow_news, $maxRows_news);
$news = mysql_query($query_limit_news, $SC_R_2005) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
if (isset($HTTP_GET_VARS['totalRows_news'])) {
$totalRows_news = $HTTP_GET_VARS['totalRows_news'];
} else {
$all_news = mysql_query($query_news);
$totalRows_news = mysql_num_rows($all_news);
}
$totalPages_news = ceil($totalRows_news/$maxRows_news)-1;
$maxRows_kalender = 1;
$pageNum_kalender = 0;
if (isset($HTTP_GET_VARS['pageNum_kalender'])) {
$pageNum_kalender = $HTTP_GET_VARS['pageNum_kalender'];
}
$startRow_kalender = $pageNum_kalender * $maxRows_kalender;
mysql_select_db($database_SC_R_2005, $SC_R_2005);
$query_kalender = "SELECT * FROM veranstaltungskalender ORDER BY datum ASC";
$query_limit_kalender = sprintf("%s LIMIT %d, %d", $query_kalender, $startRow_kalender, $maxRows_kalender);
$kalender = mysql_query($query_limit_kalender, $SC_R_2005) or die(mysql_error());
$row_kalender = mysql_fetch_assoc($kalender);
if (isset($HTTP_GET_VARS['totalRows_kalender'])) {
$totalRows_kalender = $HTTP_GET_VARS['totalRows_kalender'];
} else {
$all_kalender = mysql_query($query_kalender);
$totalRows_kalender = mysql_num_rows($all_kalender);
}
$totalPages_kalender = ceil($totalRows_kalender/$maxRows_kalender)-1;
$colname_inhalte = "1";
if (isset($HTTP_GET_VARS['content_id'])) {
$colname_inhalte = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['content_id'] : addslashes($HTTP_GET_VARS['content_id']);
}
mysql_select_db($database_SC_R_2005, $SC_R_2005);
$query_inhalte = sprintf("SELECT * FROM inhalte WHERE inhalt_id = %s", $colname_inhalte);
$inhalte = mysql_query($query_inhalte, $SC_R_2005) or die(mysql_error());
$row_inhalte = mysql_fetch_assoc($inhalte);
$totalRows_inhalte = mysql_num_rows($inhalte);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="de">
<head>
<title>SC Rothenhausen | Online-Portal</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<?php include("_includes/meta.inc"); ?>
<script type="text/javascript" language="JavaScript1.2" src="_scripte/stm31.js"></script>
<?php include("_includes/stylesheets.inc"); ?>
<link rel="stylesheet" type="text/css" media="screen" href="_stylesheets/master.css">
<link rel="stylesheet" type="text/css" media="all" href="_stylesheets/fontstyles.css">
<link rel="stylesheet" type="text/css" media="all" href="_stylesheets/sql_based_tables.css">
<link rel="stylesheet" type="text/css" media="all" href="_stylesheets/colums.css">
<link rel="stylesheet" type="text/css" media="all" href="_stylesheets/div_containers.css">
<link rel="stylesheet" type="text/css" media="all" href="_stylesheets/archiv_articles.css">
<link rel="stylesheet" type="text/css" media="print" href="_stylesheets/print.css">
</head>
<body>
<div id="wrap_main">
<div id="banner"></div>
<div id="wrap_menu">
<script type="text/javascript" language="JavaScript1.2" src="_scripte/menu_top.js"></script></div>
<div id="wrap_body">
<div id="wrap_margin">
<div id="channelpic"><img src="gfx/channelpics/portal.jpg" alt=" " border="0"></div>
<?php include("_includes/margin.inc"); ?><!-- Ende margin -->
<div id="wrap_content">
<?php if (isset($HTTP_GET_VARS['content_id'])) { // wenn inhalt_id gesetzt, zeige Datensatz an ?>
<?php if ($totalRows_inhalte > 0) { // Show if recordset not empty ?>
<h1><?php echo $row_inhalte['header']; ?></h1>
<p class="lead"><?php echo $row_inhalte['lead']; ?></p>
<?php } // Show if recordset not empty ?>
<?php $Artikel = $row_inhalte['content'];
// $Artikel = ereg_replace("ß", "ß", $Artikel);
$Artikel = ereg_replace("ö", "ö", $Artikel);
$Artikel = ereg_replace("ä", "ä", $Artikel);
$Artikel = ereg_replace("ü", "ü", $Artikel);
$Artikel = ereg_replace("Ö", "Ö", $Artikel);
$Artikel = ereg_replace("Ä", "Ä", $Artikel);
$Artikel = ereg_replace("Ü", "Ü", $Artikel);
eval('?>' .$Artikel. '<?'); ?>
<?php } else include("http://127.0.0.1/SC_Rothenhausen_2005/portal/_portal.html"); ?>
</div><!-- Ende wrap_content --></div><!-- Ende wrap_body -->
<?php include("_includes/footer.inc"); ?>
</div><!-- Ende wrap_main --></body></html>
<?php
mysql_free_result($news);
mysql_free_result($kalender);
mysql_free_result($inhalte);
?>
Sooo, es folgt nochmal der Inhalt der besagten Tabellen-Zelle namens „content“:
HTML-Code:
<p>Damit Sie kein wichtiges Event verpassen, haben wir für Sie einen Online-Veranstaltungskalender bereitgestellt, so dass Sie sich jederzeit über aktuelle Termine und eventuelle kurzfristige Änderungen informieren können.<br><br>
Über zahlreiches Erscheinen freuen wir uns schon jetzt.</p><br>
<table width="520" border="0" cellspacing="0" cellpadding="0">
<tr>
<th height="25" style="padding-left: 8px;"><b>Datum</b></th>
<th height="25"><b>Veranstaltung</b></th>
<th height="25"><b>Ort</b></th>
</tr>
<?php do { ?>
<tr>
<td height="5" colspan="3"> </td>
</tr>
<tr>
<td width="150" height="40" valign="top" style="padding-left: 8px;"><b><?php echo $row_kalender['wochentag']; ?>, <?php echo $row_kalender['datum']; ?></b><br> <?php echo $row_kalender['uhrzeit']; ?> </td>
<td width="270" height="40" valign="top" >
<p class="event"><?php echo $row_kalender['veranstaltung']; ?></p></td>
<td width="100" height="40" valign="top"><?php echo $row_kalender['ort']; ?></td>
</tr>
<?php if (isset($row_kalender['bemerkung'])) { ?>
<tr valign="middle">
<td height="25" style="padding-left: 8px;"><em>Bemerkungen:</em></td>
<td colspan="2" class="bemerkung"><?php echo $row_kalender['bemerkung']; ?></td>
</tr>
<?php } ?>
<tr valign="middle">
<td height="25" colspan="3" style="padding-left: 8px;"><hr size="1" noshade color="#cc0000"></td>
</tr>
<?php } while ($row_kalender = mysql_fetch_assoc($kalender)); ?></table>
<?php } // Show if recordset not empty
else echo "<p>Es liegen zur Zeit keine gespeicherten Termine vor.</p>"; ?>
<br><p class="hinweis">Leider können wir Irrtümer und eventuelle Änderungen nicht ausschließen.</p>
So. Das war eigentlich alles. Leider habe ich das Ganze nur lokal laufen ... aber ich weiß echt nicht mehr weiter. Merkt man ja.
Danke.
Torben
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
04.07.2005, 14:07
|
#12
|
|
TP-Member
Registriert seit: Apr 2003
Ort: Ar... der Heide
|
Hat Sich Erledigt!
Mein Gott, ist mir das peinlich. Wie kann man denn so verblödet sein? Es fehlte natürlich folgende Zeile am Anfang der „content“-Zelle in der Tabelle.
PHP-Code:
<?php if ($totalRows_kalender > 0) { ?>
Trotzdem gaanz lieben Dank für eure Hilfe. Ich werde mir jetzt erst mal einen Strick nehmen
Gruß, Torben
__________________
Moje zycie jest jak papier toaletowy: Dlugie, szare ... y do dupy!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
| | |