Hi!
Ich bin schon länger an der Arbeit für ein Projekt einen Weblog zu schreiben.
Allerdings stoße ich auf Schwierigkeiten, auf die ich keine Lösung weiß.
1.Problem:
Ich habe Einträge für die Monate November bis März.
Ich würde jetzt wollen, dass ich alle Einträge des jeweiligen Monats auf Klick ausgegeben bekomme.
Also nicht wie hier gelöst, dass ich vom Jänner bis Dezember auswählen kann, sondern November Dezember Jänner Februar März.
Die Links sollen aber so erhalten bleiben, dass für November 1.Monat steht, Dezember 2.Monat usw.
Quellcode für die Ausgabe der Weblog-Einträge:
2.Problem:
Da man zu jedem Eintrag ein Kommentar abgeben können soll, wäre es praktisch, wenn man nach dem absenden des Eintrag-Formulars, gleich automatisch eine Datei für die Kommentarabgabe erstellen kann.
Derzeit muss ich dies händisch machen und die jeweiligen Parameter ändern um auf diese KommentarID zugreifen zu können.
Skript für Weblog-Eintrag:
Skript für Kommentar-Abgabe:
Hier muss ich derzeit immer die jeweilige tid ändern, dass das Kommentar beim richtigen Weblog-Eintrag ist.
Ich hoffe ich habe mein Problem verständlich erklärt und hoffe ihr könnt mir helfen, da ich für den Weblog nur noch bis Freitag Zeit habe.
Hier noch die DB:
USE weblog;
CREATE TABLE IF NOT EXISTS tagebuch (
tid INTEGER auto_increment,
tdatum date default '0000-00-00',
tautor varchar(20),
tueberschrift varchar(100),
teintrag text,
PRIMARY KEY (tid)
) Type=InnoDB;
CREATE TABLE IF NOT EXISTS kommentar (
kid INTEGER auto_increment,
tid INTEGER,
kdatum date default '0000-00-00',
kautor varchar(20),
kueberschrift varchar(100),
keintrag text,
INDEX (tid),
PRIMARY KEY (kid),
FOREIGN KEY (tid) REFERENCES tagebuch (tid)
ON UPDATE CASCADE ON DELETE CASCADE
) Type=InnoDB;
Für Fehlerhinweise bin ich natürlich auch dankbar, bin aber schon zufrieden wenn der Weblog dann stabil läuft!
Ich bin schon länger an der Arbeit für ein Projekt einen Weblog zu schreiben.
Allerdings stoße ich auf Schwierigkeiten, auf die ich keine Lösung weiß.
1.Problem:
Ich habe Einträge für die Monate November bis März.
Ich würde jetzt wollen, dass ich alle Einträge des jeweiligen Monats auf Klick ausgegeben bekomme.
Also nicht wie hier gelöst, dass ich vom Jänner bis Dezember auswählen kann, sondern November Dezember Jänner Februar März.
Die Links sollen aber so erhalten bleiben, dass für November 1.Monat steht, Dezember 2.Monat usw.
Quellcode für die Ausgabe der Weblog-Einträge:
PHP-Code:
<?php
$fm="";
//-----------------------------------------------------------------------------------------------------------
// ..:: Verbindung zum DB-Server aufbauen ::..
$link = mysql_connect('localhost', 'user', 'pw');
if (!$link)
{
echo "Kann die Verbindung zum Server \"localhost\" nicht aufbauen: " . mysql_error();
}
else
{
// ..:: Datenbank auswählen ::..
$db = mysql_select_db('weblog', $link);
if (!$db)
{
echo "Kann die Datenbank \"weblog\" nicht benutzen: " . mysql_error();
}
}
//------------------------------------------------------------------------------------------------------------
// ..:: Ausgabe des DB-Inhaltes der Tabelle "Tagebuch" (Weblog) ::..
echo "<html>";
echo "<body>";
echo "<br>";
echo "<h2 align=center> ..:: Weblog ::.. </h2>";
echo "</body>";
echo "</html>";
echo "<p align=center>";
if (isset($_GET['month'])&& $_GET['month']>0 && $_GET['month']<13 ) $month = $_GET['month']; else $month = date("m");
{
for ($i = 1; $i <= 12; $i++)
{
echo("<a href=\"" . $_SERVER['PHP_SELF'] . "?month=$i\">$i.Monat</a>\n");
}
echo "</p>";
//$sql = "SELECT * FROM tagebuch ORDER BY tdatum;";
$sql="SELECT * FROM tagebuch WHERE MONTH(tdatum)=$month ORDER BY tdatum;";
$result = mysql_query($sql);
echo "<table border=1 align=center width=53%>";
if ($result)
{
while ($ar=mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<tr bgcolor=#CCCCCC align=right><td><b>Datum:</b> ";
echo $ar["tdatum"]; echo"</td></tr>";
echo "<tr bgcolor=#999999><td><h3 align=center>"; echo $ar["tueberschrift"]; echo "</h3>"; echo $ar["teintrag"]; echo "</td></tr>";
echo"<tr><td align=center><a href=$ar[tid].php >Kommentare</a></td></tr>";
echo"<tr><td height=30></td></tr>";
}
}
echo "</table>";
}
?>
Da man zu jedem Eintrag ein Kommentar abgeben können soll, wäre es praktisch, wenn man nach dem absenden des Eintrag-Formulars, gleich automatisch eine Datei für die Kommentarabgabe erstellen kann.
Derzeit muss ich dies händisch machen und die jeweiligen Parameter ändern um auf diese KommentarID zugreifen zu können.
Skript für Weblog-Eintrag:
PHP-Code:
<?php
$fm="";
//-----------------------------------------------------------------------------------------------------------
// ..:: Verbindung zum DB-Server aufbauen ::..
$link = mysql_connect('localhost', 'user', 'pw');
if (!$link)
{
echo "Kann die Verbindung zum Server \"localhost\" nicht aufbauen: " . mysql_error();
}
else
{
// ..:: Datenbank auswählen ::..
$db = mysql_select_db('weblog', $link);
if (!$db)
{
echo "Kann die Datenbank \"weblog\" nicht benutzen: " . mysql_error();
}
}
//------------------------------------------------------------------------------------------------------------
// ..:: Wenn der Senden-Button gedrückt worden ist, soll geprüft werden, ob alle Felder ausgefüllt wurden ! ::..
// ..:: Wenn nicht --> Fehlermeldung !!! ::..
// ..:: Sonst in DB speichern und Erfolgsmeldung anzeigen !!! ::..
if (isset($_POST['button']))
{
if($_POST['datum'] == '' || $_POST['autor'] == '' || $_POST['titel'] == '' || $_POST['inhalt'] == '')
{
$fm="Bitte alle Felder ausfüllen !!! <p>";
}
else
{
echo "<font color='blue'>Speichern erfolgreich !</font>";
$eingabe = 'INSERT INTO tagebuch (tdatum, tautor, tueberschrift, teintrag) VALUES ("'.$_POST['datum'].'",
"'.$_POST['autor'].'", "'.$_POST['titel'].'", "'.$_POST['inhalt'].'")';
mysql_query($eingabe) or die ("Eintrag fehlgeschlagen !");
// ..:: Nach erfolgreichem Absenden sollen die Felder wieder gelöscht werden ::..
$_POST['titel'] = "";
$sql2 = "SELECT tid FROM tagebuch ORDER BY tid DESC LIMIT 1;";
$result2 = mysql_query($sql2);
if ($result2)
{
while ($ar2=mysql_fetch_array($result2, MYSQL_ASSOC))
{
fopen($ar2['tid'].".".php,"w+");
}
}
}
}
//-------------------------------------------------------------------------------------------------------------
// ..:: Einbinden des Eingabeformulars ::..
include 'eintrag-form.php';
//-------------------------------------------------------------------------------------------------------------
// ..:: Ausgabe des DB-Inhaltes der Tabelle "Tagebuch" (Weblog) ::..
echo "<html>";
echo "<body>";
echo "<br>";
echo "<h2 align=center> ..:: Weblog ::.. </h2>";
echo "</body>";
echo "</html>";
$sql = "SELECT * FROM tagebuch ORDER BY tdatum;";
$result = mysql_query($sql);
echo "<table border=1 align=center width=53%>";
if ($result)
{
while ($ar=mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<tr bgcolor=yellow align=right><td><b>Autor:</b> "; echo $ar["tautor"]; echo "<br><b>Datum:</b> ";
echo $ar["tdatum"]; echo "<br>"; echo "</td></tr>";
echo "<tr bgcolor=green><td><h3 align=center>"; echo $ar["tueberschrift"]; echo "</h3>"; echo $ar["teintrag"]; echo "</td></tr>";
}
}
echo "</table>";
?>
Hier muss ich derzeit immer die jeweilige tid ändern, dass das Kommentar beim richtigen Weblog-Eintrag ist.
PHP-Code:
<?php
$fm="";
//-----------------------------------------------------------------------------------------------------------
// ..:: Verbindung zum DB-Server aufbauen ::..
$link = mysql_connect('localhost', 'user', 'pw');
if (!$link)
{
echo "Kann die Verbindung zum Server \"localhost\" nicht aufbauen: " . mysql_error();
}
else
{
// ..:: Datenbank auswählen ::..
$db = mysql_select_db('weblog', $link);
if (!$db)
{
echo "Kann die Datenbank \"weblog\" nicht benutzen: " . mysql_error();
}
}
//------------------------------------------------------------------------------------------------------------
// ..:: Wenn der Senden-Button gedrückt worden ist, soll geprüft werden, ob alle Felder ausgefüllt wurden ! ::..
// ..:: Wenn nicht --> Fehlermeldung !!! ::..
// ..:: Sonst in DB speichern und Erfolgsmeldung anzeigen !!! ::..
if (isset($_POST['button']))
{
if($_POST['datum'] == '' || $_POST['autor'] == '' || $_POST['titel'] == '' || $_POST['kommentar'] == '')
{
$fm="Bitte alle Felder ausfüllen !!! <p>";
}
else
{
echo "<font color='blue'>Speichern erfolgreich !</font>";
$eingabe = 'INSERT INTO kommentar (tid, kdatum, kautor, kueberschrift, keintrag) VALUES (1, "'.$_POST['datum'].'",
"'.$_POST['autor'].'", "'.$_POST['titel'].'", "'.$_POST['kommentar'].'")';
mysql_query($eingabe) or die ("Eintrag fehlgeschlagen !");
// ..:: Nach erfolgreichem Absenden sollen die Felder wieder gelöscht werden ::..
$_POST['titel'] = "";
}
}
//-------------------------------------------------------------------------------------------------------------
// ..:: Einbinden des Eingabeformulars ::..
include 'kommentar-form.php';
//-------------------------------------------------------------------------------------------------------------
// ..:: Ausgabe des DB-Inhaltes der Tabelle "Kommentar" (Weblog) ::..
echo "<html>";
echo "<body>";
echo "<br>";
echo "<h2 align=center> ..:: Kommentar ::.. </h2>";
echo "</body>";
echo "</html>";
$sql = "SELECT * FROM kommentar where tid = 1;";
$result = mysql_query($sql);
echo "<table border=1 align=center width=53%>";
if ($result)
{
while ($ar=mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<tr bgcolor=yellow align=right><td><b>Autor:</b> "; echo $ar["autor"]; echo "<br><b>Datum:</b> ";
echo $ar["datum"]; echo "</td></tr>";
echo "<tr bgcolor=green><td><h3 align=center>"; echo $ar["ueberschrift"]; echo "</h3>"; echo $ar["kommentar"]; echo "</td></tr>";
}
}
echo "</table>";
?>
Hier noch die DB:
USE weblog;
CREATE TABLE IF NOT EXISTS tagebuch (
tid INTEGER auto_increment,
tdatum date default '0000-00-00',
tautor varchar(20),
tueberschrift varchar(100),
teintrag text,
PRIMARY KEY (tid)
) Type=InnoDB;
CREATE TABLE IF NOT EXISTS kommentar (
kid INTEGER auto_increment,
tid INTEGER,
kdatum date default '0000-00-00',
kautor varchar(20),
kueberschrift varchar(100),
keintrag text,
INDEX (tid),
PRIMARY KEY (kid),
FOREIGN KEY (tid) REFERENCES tagebuch (tid)
ON UPDATE CASCADE ON DELETE CASCADE
) Type=InnoDB;
Für Fehlerhinweise bin ich natürlich auch dankbar, bin aber schon zufrieden wenn der Weblog dann stabil läuft!
Kommentar