调整我的php留言簿

时间:2015-12-12 21:37:08

标签: php mysql

我希望它首先显示最新帖子然后显示第二个等等,我该如何管理这样的事情?并且由于某种原因它没有显示电子邮件地址...... :(最后但并非最不重要:我如何添加像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);
 ?>

3 个答案:

答案 0 :(得分:0)

  1. 为了对数据进行排序,请在SQL查询中添加ORDER BY子句。例如:SELECT name,message,postedDate FROM guestbook ORDER BY postedDate DESC您可以按照您拥有的任何数据进行排序,因此如果您想按照发布记录的日期/时间进行排序,则需要在表格中记录该信息。

  2. 它没有显示该电子邮件,因为您没有选择该电子邮件。选择其他数据:SELECT name,message,email FROM guestbook

  3. 您可以将任何喜欢的列添加到表格中。在MySQL中,您可能会使用DATETIMETIMESTAMP列类型。您可以像插入任何其他列一样插入此列,并从中选择任何其他列。

答案 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"