jamesb
29.12.2008, 10:27:55
witam
Mam w tabeli rekordy w jednej z kolumn jest data, przy wypisywaniu rekordów chce miedzy nimi wstawić taki nagłówek z datą, czyli pod każdym takim nagłówkiem byłby wypisane kolejne rekordy przypisane do danej daty.
Próbowałem to robić w dwóch pętlach i porównywać aktualny rekord z kolejnym jeśli będą daty róźne wypisać nagłówek, ale coś mi nie działa.
kefirek
29.12.2008, 10:44:48
Spróbuj coś w ten deseń
<?php
$wynik1 = mysql_query("SELECT * FROM test WHERE data='".$r['data']."'");
echo "".$r1['rekord']."";
}
}
?>
ciężko pomóc nie widząc tabeli.
jamesb
29.12.2008, 11:43:59
No tak troszke sprecyzuje ze w tabeli mam pole datetime czyli np 2008-12-28 23:21:24
a w nagłówku chce tylko date. Ponizej zmienilem to co napisales tylko dalej nie wiem ja wyrzucic powtarząjace sie sie te same daty.
$wynik = mysql_query("SELECT * FROM zadania ORDER BY data_start");
while($r = mysql_fetch_assoc($wynik)) {
echo "<br><strong>".substr($r['data_start'],0,10)."</strong><br>";
$wynik1 = mysql_query("SELECT * FROM zadania WHERE substring(data_start,1,10)='".substr($r['data_start'],0,10)."' ORDER BY data_start");
while($r1 = mysql_fetch_assoc($wynik1)) {
echo "".$r1['data_start']."<br>";
}
}
dla testów w tabeli mam 4 daty i powyzsze zapytanie zwraca coś takiego:
2008-12-28
2008-12-28 23:21:24
2008-12-28 23:47:57
2008-12-28
2008-12-28 23:21:24
2008-12-28 23:47:57
2008-12-29
2008-12-29 23:21:49
2008-12-29 23:42:22
2008-12-29
2008-12-29 23:21:49
2008-12-29 23:42:22
czyli trzeba usunac powtarzajace sie daty tylko jak??
kefirek
29.12.2008, 11:54:34
Zobacz tak powinno być dobrze
<?php
$wynik = mysql_query("SELECT *, DATE(data_start) AS data FROM zadania GROUP BY data ORDER BY data DESC");
echo "<br><strong>".$r['data']."</strong><br>";
$wynik1 = mysql_query("SELECT *, DATE(data_start) AS data1 FROM zadania WHERE data1='".$r['data']."' ORDER BY data_start DESC");
echo "".$r1['data_start']."<br>";
}
}
?>
jamesb
29.12.2008, 12:30:51
Dzieki działa burzyło sie tylko o zmienną w tym miejscu
$wynik1 = mysql_query("SELECT *, DATE(data_start) AS data1 FROM zadania WHERE data1='".$r['data']."' ORDER BY data_start DESC");
wyrzuciłem zmienna data1 i jest ok:
$wynik1 = mysql_query("SELECT * FROM zadania WHERE DATE(data_start)='".$r['data']."' ORDER BY data_start DESC");
między czasie znalazłem tez drugi sposób wydaje sie ze tez działa za pomocą DISTINCT substring
$wynik = mysql_query("SELECT DISTINCT substring(data_start,1,10) as dataa FROM zadania ORDER BY dataa");
while($r = mysql_fetch_assoc($wynik)) {
echo "<br><strong>".substr($r['dataa'],0,10)."</strong><br>";
$wynik1 = mysql_query("SELECT DISTINCT * FROM zadania WHERE substring(data_start,1,10)='".substr($r['dataa'],0,10)."' ORDER BY data_start");
while($r1 = mysql_fetch_assoc($wynik1)) {
echo "".$r1['data_start']."<br>";
}
}
Dzięki wielkie za pomoc.
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.