我希望它首先显示最新帖子然后显示第二个等等,我该如何管理这样的事情?并且由于某种原因它没有显示电子邮件地址...... :(最后但并非最不重要:我如何添加像yyyy / mm / ddd这样的时间戳hh:mm?
<form method="post" onsubmit="#" action="gpost.php">
<fieldset>
Namn:<br><input name="gnamn" id="gnamn" type="text" size="20">
<br>E-post:<br><input name="gemail" id="gemail" type="text" size="20">
<br>Meddelande:<br>
<textarea name="gmeddelande" id="gmeddelande" cols="20" rows="10">
</textarea>
<br><br>
<input name="submit" type="submit" value="Sänd">
</fieldset>
</form>
<?php
$host="localhost";
$user="my user";
$pass="mypasswor :D";
$dbname="pelle";
$con=mysqli_connect($host,$user,$pass,$dbname);
if (mysqli_connect_errno($con))
{
echo "Misslyckades att ansluta till mysql: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT name,message FROM guestbook");
while($row = mysqli_fetch_array($result))
{ ?>
<div id="post">
<header><h3><?php echo $row['name']; ?></h3></header>
<p><?php echo $row['email']; ?></p>
<p><?php echo $row['message']; ?></p>
</div>
<?php }
mysqli_close($con);
?>
和继承人我的gpost.php
<?php
$host="localhost";
$user="my usernamen";
$pass="my password";
dbname="pelle";
$con=mysqli_connect($host,$user,$pass,$dbname);
if (mysqli_connect_errno($con))
{
echo "<h1>Failed to connect to MySQL: " . mysqli_connect_error() ."</h1>";
}
$name=$_POST['gnamn'];
$email=$_POST['gemail'];
$message=$_POST['gmeddelande'];
$sql="INSERT INTO guestbook(name,email,message) VALUES('$name','$email','$message')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
else
echo "Values Stored in our Database!";
mysqli_close($con);
?>
答案 0 :(得分:0)
为了对数据进行排序,请在SQL查询中添加ORDER BY
子句。例如:SELECT name,message,postedDate FROM guestbook ORDER BY postedDate DESC
您可以按照您拥有的任何数据进行排序,因此如果您想按照发布记录的日期/时间进行排序,则需要在表格中记录该信息。
它没有显示该电子邮件,因为您没有选择该电子邮件。选择其他数据:SELECT name,message,email FROM guestbook
您可以将任何喜欢的列添加到表格中。在MySQL中,您可能会使用DATETIME
或TIMESTAMP
列类型。您可以像插入任何其他列一样插入此列,并从中选择任何其他列。
答案 1 :(得分:0)
添加名为&#34; time&#34;的字段从Type INT到Database,值为&#34; time()&#34; php功能。
从
更改SQL mysqli_query($con,"SELECT name,message FROM guestbook");
到
mysqli_query($con,"SELECT name,message,time FROM guestbook ORDER BY time DESC");
time():返回自Unix Epoch(1970年1月1日00:00:00 GMT)以来的秒数测量的当前时间。 time on php.net
date():string date(string $ format [,int $ timestamp = time()]) 使用给定的整数时间戳返回根据给定格式字符串格式化的字符串,如果没有给出时间戳,则返回当前时间。换句话说,timestamp是可选的,默认为time()的值。 date on php.net
答案 2 :(得分:0)
要在创建新条目时将当前时间插入数据库,您可以创建一个类型为“time”的字段并将其设置为“TIMESTAMP”,然后将其格式化为PHP中的输出。电子邮件没有显示,因为您没有查询它。将您的查询更改为:
"SELECT name, message, time, email FROM guestbook"
“email”是您的电子邮件字段的名称。或者,如果这些是表格中的唯一字段,您可以将其缩短为:
"SELECT * FROM guestbook"