Wiekszosc zadan mozna wykonac na wiele roznych sposobow. Dobrze jest jezeli masz zoptymalizowany kod, ale jeszcze lepiej jesli to jest Twoj kod - nawet gdy nie jest w pelni profesjonalny. Piszac cos samemu uczysz sie o wiele szybciej niz wtedy gdy kozystasz z gotowych, cudzych rozwiazan.
Co do zademonstrowanego przez Ciebie fragmentu kodu mam jednak kilka uwag.
<?php
$polecenie3 = mysql_query(\"SELECT count(id), id FROM kategorie GROUP BY id ORDER BY kategoria\"); $download_ilosc = $wynik3[0];
$kategorie[] = $wynik3[1];
}
if ($download_ilosc > 0) {
?>
Wykonywanie wbudowanej funkcji count() na kluczu podstawowym z uzyta klauzula GROUP BY na tym samym parametrze mija sie z celem poniewaz, jak w dym mozesz przyjac ze wyjdzie 1 (w koncu wartosci klucza podstawowego sa unikalne), no chyba, ze tabela jest pusta. Co za tym idzie warunek "if ($download_ilosc > 0)" jest bez sensu bo jesli tylko zapytanie zwroci wynik to ten warunek jest zawsze prawdziwy. Proponuje to zastapic kodem
<?php
$polecenie3 = mysql_query(\"SELECT id FROM kategorie ORDER BY kategoria\"); if ($polecenie3==true) {
$kategorie[] = $wynik3[0];
}
?>
Jesli zamiast MYSQL_NUM uzylbys MYSQL_ASSOC dzialal by zapis:
$kategorie[] = $wynik3['id'];
Jesli uzylbys MYSQL_BOTH, ktory jest wartoscia domyslna
oba zapisy moglbys stosowac zamiennie, jak wygodniej.
Musisz koniecznie ale to naprawde koniecznie popracowac nad wlasciwym nadawaniem nazw funkcji i zmiennym bo w przeciwnym razie szybko sie pogubisz w swoim wlasnym projekcie.
<?php
function plik ($zmienna1, $zmienna2, $zmienna3)
?>
Nazwa funkcji powinna zawierac jakis czasownik bo przeciez funkcja cos robi, a ta konkretna funkcja tworzy link. Nazwij ja wiec np. tworzLink(). Poza tym co przechowuja zmienne: $zmienna1, $zmienna2, $zmienna3? Nazwa zmiennej powinna odzwierciedlac jej zawartosc.
<?php
foreach ($kategorie as $pokaz) {
// pobieram odpowiednia nazwe kategorii dla danego id
$polecenie4 = mysql_query(\"SELECT kategoria FROM kategorie WHERE id = $pokaz\"); ?>
Rozumiem, ze tablice w ktorej przechowujesz identyfikatory kategorii nazwales $kategorie ale dlaczego uzyles nazwy $pokaz dla zmiennej, ktora przechowuje pojedynczy identyfikator kategorii? Poza tym Twoj komentarz jest nieprawdziwy bo ty nie pobierasz nazw kategorii tylko identyfikatory kategorii, a tak na marginesie gdybys mial dobrze dobrane nazwy zmiennych to akurat w tym wypadku komentarz bylby zbedny.