Afisare rezultate duplicate o singura data

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
claUdiu
Mesaje:313

Afisare rezultate duplicate o singura data

Buna. Am si eu o intrebare. PRima data: am acest cod:

Cod: Selectaţi tot

<?php
include("config.php");

//Bagam intr-o variabila data de astazi ZZ.LL.AAAA
$date = date('d.m.Y');

//Selectam din baza de date posturile cu data mai mica de decat data din variabila $date
$select = mysql_query("SELECT * FROM posts WHERE date < '$date' ORDER BY date DESC");

//Pastram rezultatele intr-o variabila
while($show = mysql_fetch_assoc($select)){

$date2 = $show['date'];

//Afisam rezultatele
echo '<a href="post_archive.php?d='.$date2.'">'.$date2.'</a>';
echo "<br/>";
}
?>
care-mi afiseaza corect. Doar ca am o problema. Eu am 3 posturi cu o data, de ex: am postat patru posturi pe 20.11.2011. Scriptul o sa imi afiseze data aceasta de 3 ori.

Aici vine intrebarea: cum pot sa fac sa mi-o arate doar o data? Indiferent daca am postat 100 posturi intr-o zi? Multumes!
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Poti retine intai toate rezultatele intr-un array, apoi cu array_unique() se elimina ce e duplicat.
Exemplu, acest cod:

Cod: Selectaţi tot

//Pastram rezultatele intr-o variabila de tip array
$date2 = array();
while($show = mysql_fetch_assoc($select)){
  $date2[] = $show['date'];
}

// daca $date2 contine cel putin un rezultat
if(count($date2) > 0) {
  // aplica array_unique() pt. a elimina rezultatele duplicate
  $date2 = array_unique($date2);

  // parcurge array-ul cu rezultatele ramase (unice) si le afiseaza
  foreach($date2 AS $dv) {
    echo '<a href="post_archive.php?d='.$dv.'">'.$dv.'</a><br/>';
  }
}

Subiecte similare