Witam!
Mam mały problem... Najpierw opiszę co chcę uzyskać.
Cel: skrypt ma automatycznie generować menu na moim blogu <li><a hfref=""></a></li> na podstawie rekordów (daty wpisania postu) w tabeli.
POLA W TABLICY: id_post; tytuł; zajawka; tresc; data (ma postać RRRR-MM-DD); autor
Kod PHP:
// przykładowa cała data w tabeli ma postać 2011-01-17
for ($r=2011; $r<=2012; $r++) { // $r - rok
for ($m=1; $m<=12; $m++) { //$m - miesiac
if ($m <= 9) // miesiac w tabeli ma postać 01, 02, 03, 04, itd. do 12 dlatego rozdzieliłem na dwa warunki. W pierwszym warunku do wywołania dodane jest 0
{
$dbRequest = mysql_query("SELECT dbposty.data FROM dbposty WHERE dbposty.data LIKE \"".$r."-0".$m."-%\" LIMIT 1,1") or die('Błąd zapytania');
if ($dbRequest)
{
while ($row = mysql_fetch_assoc($dbRequest))
{
foreach ($row as $data)
{
preg_match('/..$/', $data, $miesiac); // tutaj zamiast miesiąca zwraca dzień, ale to pomińmy
preg_match('/^..../', $data, $rok);
echo $rok." ".$miesiac; // tutaj sprawdzam sobie czy przypozadkowalo mi wartości do zmianneych. wyświetla mi tylko: Array ArrayArray ArrayArray Array
//echo $data."</br>"; - to działa
}
}
}
}
else
{
TUTAJ BĘDZIE TO SAMO CO WYŻEJ TYLKO BEZ 0 - zera
}
}
}
Jeśli w zmiennej $rok i $miesiac uzyskam pojedyńcze, wygenerowane wartości wtedy juz z łatwością już można zaaplikować do <li><a hfref=""></a></li>.
Link jaki chcę uzyskać to np.:
Kod PHP:
echo "<li><a href=\"index.php?id=01-2011\" target=\"_self\">Styczeń</a></li>";
gdzie: 01 to $m i 2011 to $r
P.S Uważam, że problem tkwi w tym, że foreach ($row as $data) zwraca mi tablice, a funkcja preg_match('/..$/', $data, $miesiac); służy do operacji na ciągach. Jest jakiś inny sposób żeby to obejść ? Jakiś odpowiednich preg_match dla tablic ?
Troche zagmatwane ale może ktoś to uniesie hehe :]