2015-07-14 2 views
1
<?php 
include 'preCode.php'; 
include 'header.php'; 
echo '<body><div class="standardLayout">'; 
include 'systemMenu.php'; 
echo '<h4>All Charges</h4>'; 

$user = unserialize($_SESSION['user']); 
$query = "SELECT * FROM billingItems WHERE userID= ' ".$user->userID. " ' ORDER BY deliveryTimestamp DESC"; 
$result = mysqli_query($db, $query); 
while($row = mysqli_fetch_array($result)) 
{ 
    echo '<p>'; 

    echo '<a href="billingHistory1.php?deliveryTimestamp=' .$row["deliveryTimestamp"]. '">'. 
    ' Order Delivered on' . '</a>' .$row['deliveryTimestamp'] ; 
} 

echo '</div></body></html>'; 

$_SESSION['user'] = serialize($user); 
include 'footer.html'; 
?> 

выход из указанного выше файла:Как я могу отобразить одну ссылку вместо нескольких ссылок?

All Charges 

    Order Delivered on2015-05-06 13:26:50 
    Order Delivered on2015-05-06 13:26:50 
    Order Delivered on2015-05-06 13:26:50 
    Order Delivered on2015-05-03 22:11:23 
    Order Delivered on2015-05-03 22:11:23 
    Order Delivered on2015-05-03 22:11:23 
    Order Delivered on2015-05-03 22:11:23 

Если вы увидите результат, то вы заметите, что первые три ссылки одинаковы и последние четыре такие же.

Мне нужно уменьшить несколько ссылок на один.

Хотите показать только две ссылки по одному для каждого.

Для этого мне нужно использовать оператор if внутри цикла while. Если deliveredTimestamp - это то же самое, что и не показывать его. Пожалуйста помоги.

+0

Что делать, если вы в конечном итоге с двумя заказами, которые приходят в то же время? Должно ли это не вытягиваться уникальным идентификатором вместо метки времени? – wuno

+0

Вы можете достичь этого, используя 'GROUP BY' в вашем запросе. – Saty

+0

Это круто. Спасибо. Мой запрос работает сейчас. Еще раз спасибо. – kim

ответ

3

Почему бы не попробовать добавить уникальную доставкуTimestamps в массив, а затем визуализировать ваши ссылки?

$timestamps = array(); 
while($row = mysqli_fetch_array($result)){ 
    if (!in_array($row['deliveryTimestamp'], $timestamps)) { 
     array_push($timestamps, $row['deliveryTimestamp']); 
    } 
} 
foreach ($timestamps as $timestamp) { 
    echo '<p>'; 
    echo '<a href="billingHistory1.php?deliveryTimestamp='.$timestamp.'">'. 
     ' Order Delivered on' . '</a>' .$timestamp ; 
    echo '</p>'; 
} 
0

Вы можете использовать группу по получить количество записей уменьшенного

Используйте этот запрос

$query = "SELECT * FROM billingItems 
      WHERE userID= ' ".$user->userID. " ' 
      GROUP BY deliveryTimestamp 
      ORDER BY deliveryTimestamp DESC"; 
Смежные вопросы