Servus zusammen,
So kurz einmal die Anregungen umgeschrieben.
- Die Eingabe:
<?php
session_start();
require_once('db_connect_function.php');
if(isset($_POST['chat']) && !empty($_POST['chat']))
{
$writer = $_SESSION['user_name'];
$chat = $_POST['chat'];
$world = $_POST['world'];
$language = $_POST['language'];
$alliance = $_POST['alliance'];
$insert_message = sprintf(
'INSERT INTO chat ('
. 'message_writer, message, message_date'
. ') VALUES ('
. '\'%1$s\', \'%2$s\', \'%3$s\''
. ')',
$_SESSION['user_name'],
$_POST['chat'],
time());
if($db -> query($insert_message) === TRUE)
{
$db -> commit();
}
else
{
//error_log! $create_db_connect->error.
}
exit();
}
?>
Wie schon erwähnt verstehe ich \'%1$s\
diese Zeichenkette noch nicht genau. Das das s
für den String steht der übergeben wird ist mir schon aufgegangen. Der Rest aber noch nicht.
- Die Ausgabe:
<?php
$output = "";
require_once('db_connect_function.php');
$get_messages = "Select * FROM (Select message_writer, message, message_date FROM chat ORDER BY message_date DESC Limit 50 ) chat ORDER BY message_date ASC";
if ($result = $db->query($get_messages)):
while ($row = $result->fetch_assoc()):
?>
<article>
<footer>
<time datetime="<?php echo date('c', $row['message_date']); ?>"><?php echo date('H:i:s', $row['message_date']); ?></time>
<span class="author"><?php echo htmlspecialchars($row['message_writer']); ?></span>
</footer>
<p class="message"><?php echo htmlspecialchars($row['message']); ?></p>
</article>
<?php
endwhile;
else:
//error_log! $create_db_connect->error.
endif;
?>
Warum steht der <footer>
oben? Dachte der gehört immer an das Ende eines übergeordneten Elementes.
Und braucht das <time>
Element das datetime="..."
? Erscheint mir etwas unnötig.
Gruß Jo