Homepage selbermachen 7.851 Themen, 35.615 Beiträge

Seiten automatisch erzeugen

schooters / 10 Antworten / Baumansicht Nickles

Hallo, hab eine my sql datenbank und will nun wie bei nickles auch, seiten erst dann erzeugen, wenn sie gebraucht werden. den html code also in die datenbank einfügen. wie mache ich das denn??

bei Antwort benachrichtigen
Zaphod schooters „Seiten automatisch erzeugen“
Optionen

... lerne PHP, lerne SQL, lerne, den Webserver und MySQL zu verstehen ;-)
Have fun,
Z.

PS: warum willst du das? Welche Motivation hast du dazu?

bei Antwort benachrichtigen
xafford schooters „Seiten automatisch erzeugen“
Optionen

du brauchst zum einen einen webserver der eine serverseitige scriptsprache unterstützt und zum anderen eine datenbank.
das vorgehen kann man dir hier nicht kurz und bündig schildern, da die richtige vorgehensweise (sofern es nur eine richtige gibt) stark vom aufbau und dem gewünschten nutzen der seiten abhängt.
empfehlenswert sind php und sql kenntnisse, da beides die am weitesten verbreiteten schnittstellen im internet sind. es erfordert einarbeitungszeit und zumindest grundlegende kenntnisse, selbst wenn du vorgefertigte systeme wie nuke nutzen willst. du wirst also um ein selbststudium nciht herumkommen. empfehlenswert hierzu ist selfphp, mysql-doku, sourceforge.net und ähnliche quellen (links darfst du selber raussuchen, bei dem wetter bin ich zu faul) ;o)..
übrigens: lohnt sich wirklich ur, wenn du häufig wechselnde und stark dynamsich interaktive inhalte auf dienen seiten hast, man sollte nichts nur deswegen machen wollen, weil es schick ist.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
schooters xafford „du brauchst zum einen einen webserver der eine serverseitige scriptsprache...“
Optionen

Hi,
ich poste nochmal wegen dem automatischen generieren von html code
durch php und mysql

also es sieht zur zeit folgendermassen aus, ein paar php kenntnisse hab ich schon
und auch mit mysql kann ich schon etwas anfangen.

meine inhalte für die homepage werden aus organisatorischen gründen sowieso alle
aus der datenbank geladen.

weshalb ich diese technik brauche:

ich will aktuelle politische artikel anbieten, wenn diese aber nach ein paar tagen
nicht mehr aktuell sind, sollen sie in ein archiv verschwinden. wie ich das manage,
ich eigentlich klar, aber was ich vermeiden will, ist, dass ich das archiv voller html
seiten habe, denn das stapelt sich irgendwann zu 1000 seiten und ich habe 0 übersicht.

der inhalt bleibt ja weiterhin in der datenbank, auch wenn der artikel nicht mehr aktuell ist.
Könntest du mir anhand eines beipiels trotzdem erklären wie ich html code generiere??

ich könnte sicherlich auch auf superumständliche include oder require weise eine html seite generieren
aber das problem ist, dass ich mit grosser sicherheit extrem uneffektiv arbeiten würde

bei Antwort benachrichtigen
xafford schooters „Hi, ich poste nochmal wegen dem automatischen generieren von html code durch php...“
Optionen

okay, in deinem fall geht es also nicht um das generieren statischer html-seiten aus dynamischen inhalten wie bei nickles, bzw diese variante halte ich für nicht sinnvoll es sei denn du hast ein traffic von mehreren 1.000 seiten pro tag.
ich würde dir empfehlen die inhalte ganz klassisch aus der datenbank mit php auslesen zu lassen und in php-seiten einfügen zu lassen, da du dadurch keine massen an html-seiten generierst die du speichern mußt.
wenn du doch statische seiten generieren willst, dann mußt du eben ein script schreiben, daß regelmäßig alte html-seiten löscht.
genauere angaben kann dich dir leider jetzt auf anhieb nicht geben, dazu ist die anforderung zu unklar umrissen was aufbau der gesamten site, organisation und nutzen angeht.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
schooters xafford „okay, in deinem fall geht es also nicht um das generieren statischer html-seiten...“
Optionen

Hi, ich wollte schon weiterhin php seiten erzeuge, nichts mit statischem inhalt.

die sache ist einfach die:

in einer tabelle mehrere zeilen, die ich einzeln ausgeben will.
jede zeile enthält:

titel, datum, text

es soll dann jeweils jede zeile in eine einzelne seite kommen bei klick auf die titelzeile, die aufgelistet ausgegeben werden.

so ähnlich wie bei der nickles startseite die news.

bei Antwort benachrichtigen
xafford schooters „Hi, ich wollte schon weiterhin php seiten erzeuge, nichts mit statischem inhalt....“
Optionen

nickles verwendet statisches html, daß durch php erzeugt wird, ist also ein anderes prinzip als bei dir. was bei dir sinnvoll wäre ist, du baust den link so auf, daß er immer auf eine php seite weist und dieser seite eine variable für den link übergibt etwa in der form:
<a href="show.php?link=artikel200520021">Artikel1 vom 20.05.2002</a>
auf der seite show.php überprüfst du dann, ob link definiert ist und lässt dann aus der datenbank die inhalte für Artikel200520021 auslesen und formatiert darstellen. so hältst du die benötigte seitenzahl klein auch wenn es auf die performance geht, das wird aber erst bei vielen connects relevant.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
schooters xafford „nickles verwendet statisches html, daß durch php erzeugt wird, ist also ein...“
Optionen

wie genau soll ich denn auf der show.php seite festlegen, ob der link definiert ist? da muss ich ja aber im endeffekt auch wieder alle links einzeln auf die show.php seite eingeben bz. definieren oder??

geht das mit einer einfachen if schleife?

bei Antwort benachrichtigen
xafford schooters „wie genau soll ich denn auf der show.php seite festlegen, ob der link definiert...“
Optionen

ich kann es jetzt nur als beispiel mal durchdenken:
Du hast in der datenbank die artikel die folgendermassen aufgebaut sind
überschrift, inhalt, datum
jetzt liest du in deiner übersichtsseite abhängig vom datum die überschriften aus
SELECT überschrift FROM tabelle ORDER BY datum DESC LIMIT 0,10;
(bin nicht sicher, daß die syntax korrekt ist und bin zu faul das jetzt nachzuschlagen)
die gefundenen treffer lässt du jetzt als links darstellen:
<a href="show.php?link=übershcrift">überschrift</a>
in show.php überprüfst du zuerst, ob link gesetzt wurde:
if(!isset($link)){fehler abfangen}
else ...
unter else machst du dann die datenabfrage für den artikel:
SELECT * FROM tabelle WHERE überschrift='überschrift';
und stellst dann den inhalt formatiert dar.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
schooters xafford „ich kann es jetzt nur als beispiel mal durchdenken: Du hast in der datenbank die...“
Optionen

also ok, hab ich eigentlich einigermassen verstanden.

was mir aber noch unklar ist:
Wie lasse ich den HTML code denn nun eigentlich generieren also um es krass einfach auszudrücken:

meine seite:
seite.php3


enthält nichts ausser ein paar includes, die footer und header einfügen.

jetzt fehlt mir ja noch der befehl mit dem ich den html code, der in einer tabelle bereitgestellt ist, aus dem tiefschlaf in meine php seite hole. mit einem include kann ich das noch nicht machen oder?


bei Antwort benachrichtigen
xafford schooters „also ok, hab ich eigentlich einigermassen verstanden. was mir aber noch unklar...“
Optionen

nein, mit include geht da niochts, deswegen hatte ich dir ja auch die sql-abfragen für die datenbank ins posting geschrieben.
du musst also in deiner seite.php3 (bei dir läuft noch php3?) eine funktion einbauen, die die abfrage durchführt und die ausgabe formatiert. da ja heute sonntag ist und ich noch ein bißchen zeit habe versuche ich mal eine rudimentäre funktion aufzustellen:
<?php
if(!isset($link)){$link="Fehler";}
$server="localhost:3306";
$db="Datenbankname";
$user="root";
$pw="";
$table="Tabellenname";
$kriterium="headline";
function content($link="")
{
if($link==""){print("<center><b>Fehler!</b><br>Kein Artikel angegeben.</center>");break;}
$dbp=@mysql_connect("$server","$user","$pw");
if(!$dbp){print("<center><b>Fehler!</b><br>Verbindung gescheitert.</center>");break;}
mysql_select_db("$db",$dbp);
$sql="SELECT * FROM $table WHERE $kriterium='".$link."';";
$result=mysql_query("$sql",$dbp);
$menge=mysql_num_rows($result);
if($menge==0){print("<center><b>Fehler!</b><br>Kein Artikel gefunden.</center>");break;}
$elements=mysql_fetch_array($result,MYSQL_ASSOC);
$elements["headline"]="<h1>".$elements["headline"]."</h1>";
$elements["content"]="<p>".$elements["content"]."</p>";
$elements["datum"]="<center>".$elements["datum"]."</center>";
return $elements;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title><?php print("Artikel $link");?></title>
</head>
<body>
<?php
include("header.inc");
$text=content($link);
echo $text["headline"];
echo $text["content"];
echo $text["datum"];
include("footer.inc");
?>
</body>
</html>

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen