Hallo Community,
ich fange gerade an PHP und MySQL zu lernen und wollte einen kleinen Mini-Chat bauen...
Habe ich auch soweit geschafft, aber mich nerven 2 Sachen und ich weiß nicht,
wie ich sie abstellen kann - Vielleicht könnt ihr mir ja helfen :)
Mein Quellcode:
Meine Probleme:
Wenn ich auf den Button zum abschicken klicke, lädt zwar die Seite neu, aber der Beitrag ist noch nicht da.
Dafür muss ich die Seite erst nochmal aktualisieren.
Wie kann ich ihm beibringen, dass der Beitrag sofort erscheinen soll?
Wenn ich einen Beitrag erstellt habe und immer wieder die Seite z.B. per F5 aktualisiere,
erstellt er diesen Beitrag in der Datenbank auch immer wieder und wieder, obwohl im Textfeld nichts mehr steht.
Wo ist der Text noch eingespeichert, dass dies geschieht? Und wie kann ich dies verhindern?
Ach und da fällt mir noch etwas ein...
Ich möchte von den Beiträgen nur immer die letzten 5 Einträge aus der Datenbank ausgeben und die nach der Zeit sortieren, so dass ich mir aussuchen kann ob er von oben nach unten oder von unten nach oben sortiert. Ich habe in der Datenbank eine Spalte mit dem Typ datetime erstellt... Wie kann ich danach sortieren?
Schon einmal vielen vielen Dank und liebe Grüße
Konda
ich fange gerade an PHP und MySQL zu lernen und wollte einen kleinen Mini-Chat bauen...
Habe ich auch soweit geschafft, aber mich nerven 2 Sachen und ich weiß nicht,
wie ich sie abstellen kann - Vielleicht könnt ihr mir ja helfen :)
Mein Quellcode:
<?php include("Datenbank.php");
// Hier werden die Beiträge welche erstellt wurden erst mal ausgegeben.
$beitraege="SELECT * FROM shoutbox";
$result_beitraege = mysql_query($beitraege);
while($rowbeitraege = mysql_fetch_assoc($result_beitraege)){
echo "<i>".$rowbeitraege['datum']." - ".$rowbeitraege['uhrzeit']."</i><br />";
echo $rowbeitraege['beitrag']."</br></br>";
}
?>
// Ab hier erfolgt die Eingabe
<form action="<?php echo $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING']; ?>" method="post" charset='UTF-8'>
<textarea name="textfeld" maxlength="200"></textarea>
<input type="submit" name="BeitragAbschicken" value="LOS!"/>
</form>
<?php
if (isset ($_POST['BeitragAbschicken'])) {
$benutzername_welche_aus_anderer_mysql_tabelle_kommt ="Tester";
$textfeld = $_POST['textfeld'];
$datum_sort = date("Y-m-d H:i:s");
$datum_anzeige = date("d.m.Y");
$uhrzeit = date("H:i:s");
$sh_beitrag = "INSERT INTO shoutbox
(beitrag, datum, uhrzeit, time)
VALUES(
'".$textfeld."',
'".$datum_anzeige."',
'".$uhrzeit."',
'".$datum_sort."'
)";
mysql_query($sh_beitrag);
}
?>
Meine Probleme:
Wenn ich auf den Button zum abschicken klicke, lädt zwar die Seite neu, aber der Beitrag ist noch nicht da.
Dafür muss ich die Seite erst nochmal aktualisieren.
Wie kann ich ihm beibringen, dass der Beitrag sofort erscheinen soll?
Wenn ich einen Beitrag erstellt habe und immer wieder die Seite z.B. per F5 aktualisiere,
erstellt er diesen Beitrag in der Datenbank auch immer wieder und wieder, obwohl im Textfeld nichts mehr steht.
Wo ist der Text noch eingespeichert, dass dies geschieht? Und wie kann ich dies verhindern?
Ach und da fällt mir noch etwas ein...
Ich möchte von den Beiträgen nur immer die letzten 5 Einträge aus der Datenbank ausgeben und die nach der Zeit sortieren, so dass ich mir aussuchen kann ob er von oben nach unten oder von unten nach oben sortiert. Ich habe in der Datenbank eine Spalte mit dem Typ datetime erstellt... Wie kann ich danach sortieren?
Schon einmal vielen vielen Dank und liebe Grüße
Konda