對不起,相當長的標題。使用PHP獲取排序查詢的第一行和第二行中的值之間的差異
我目前的表在我的數據庫:
然後我用下面的PHP代碼顯示在我的網站上的信息:
<?php
function time_elapsed_string($datetime, $full = true) {
$now = new DateTime;
$ago = new DateTime($datetime);
$diff = $now->diff($ago);
$diff->w = floor($diff->d/7);
$diff->d -= $diff->w * 7;
$string = array('y' => 'year','m' => 'month','w' => 'week','d' => 'day','h' => 'hour','i' => 'minute','s' => 'second',);
foreach ($string as $k => &$v) {if ($diff->$k) {$v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');} else {unset($string[$k]);}}
if (!$full) $string = array_slice($string, 0, 1);
\t return $string ? implode(', ', $string) . ' ago' : 'just now';
}
$servername = "localhost";
$username = "root";
$password = "";
$conn = new mysqli($servername, $username, $password);
mysqli_select_db($conn,"ai-database");
// if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}
$sql = "SELECT * FROM `steam` ORDER BY `id` DESC LIMIT 1";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($query)){
\t $cards = $row['cards'];
\t $backgrounds = $row['backgrounds'];
\t $emoticons = $row['emoticons'];
\t $gifts = $row['gifts'];
\t $timestamp = $row['timestamp'];
}
echo "
<div class='category'>
<h2>Steam Collection</h2>
<p class='info'>
Last Updated: <span>" . time_elapsed_string("@" . $timestamp) . "</span>
</p>
<div class='item'>
<div class='title'>Cards</div>
<div class='stat'>" . number_format($cards) . "</div>
</div>
<div class='item'>
<div class='title'>Backgrounds</div>
<div class='stat'>" . number_format($backgrounds) . "</div>
</div>
<div class='item'>
<div class='title'>Emoticons</div>
<div class='stat'>" . number_format($emoticons) . "</div>
</div>
<div class='item'>
<div class='title'>Gifts</div>
<div class='stat'>" . number_format($gifts) . "</div>
</div>
</div>
\t ";
?>
過了一會的CSS,我得到了這樣一個小東西:
我想通過id(Desc)排序後收集第一和第二行,找到兩個值之間的差異並將其顯示在網站上。
我希望的結果應該是這樣的:
我使用以下試過,但我覺得它看起來相當凌亂,可能是不好的做法了。
<?php
$sql = "SELECT * FROM `steam` ORDER BY `id` DESC LIMIT 2";
$query = mysqli_query($conn, $sql);
$i = 0;
while($row = mysqli_fetch_assoc($query)){
\t if($i==0){
\t \t $cards = $row['cards'];
\t \t $backgrounds = $row['backgrounds'];
\t \t $emoticons = $row['emoticons'];
\t \t $gifts = $row['gifts'];
\t \t $timestamp = $row['timestamp'];
\t \t $i+=1;
\t } else {
\t \t $cards2 = $row['cards'];
\t \t $backgrounds2 = $row['backgrounds'];
\t \t $emoticons2 = $row['emoticons'];
\t \t $gifts2 = $row['gifts'];
\t \t $timestamp2 = $row['timestamp'];
\t }
}
?>
是否有一個更清潔,更有效的方式來做到這一點?
我** **上午使用MySQL,但有每個區別就有點過分代碼比我的查詢正在尋找。相反,我已經去了Norbet Van Nobelen提出的想法。但謝謝你的建議:) – Kain 2015-04-04 16:48:55
然後,逗號將它們分開?似乎你可以在一個查詢中完成你所需要的工作,而不必緩存PHP值。 – Ing 2015-04-04 16:51:17
你能解釋一下嗎? – Kain 2015-04-04 16:52:27