Zmieniłem trochę funkcję druzyna($a) i zaczęło działać.
Błędem było złe przekazywanie tablicy $_POST tak jak to opisał mortus:
Cytat(mortus @ 17.06.2011, 11:17:55 )

W funkcji
druzyna() masz przypisania:
// ...
$dr = $_POST['gospodarze'];
// ...
$dr = $_POST['goscie'];
Jeśli w tablicy $_POST nie przekażesz choćby pustej wartości zmiennej
$_POST['gospodarze'] lub/i
$_POST['goscie'], to do przypisania nigdy nie dojdzie. Dodatkowo zmienna
$dr nie jest nigdzie zainicjowana domyślną wartością. Tak na dobrą sprawę funkcja zwraca to, o czym pisałem w poprzednim poście. Jest to błąd logiczny, ponieważ w tablicy $_POST nie zawsze będą znajdować się odpowiednie dane. Poza tym sama funkcja ze zmiennych
$_POST['gospodarze'] i
$_POST['goscie'] nie korzysta, a jedynie je zwraca - bez sensu, bo tutaj funkcji nie potrzeba.
Teraz funkcja jako parametr przyjmuję odpowiednie odwołanie do tablicy $_POST. A oto kod:
<?php
function druzyna($a)
{
$zapytanie = mysql_query("SELECT DISTINCT nazwa FROM druzyny"); echo '<select name="'.$a.'">'; echo '<option> --- </option>'; {
echo '<option value="'.$wynik['nazwa'].'">'; }
if(isset($_POST[''.$a.''])) {
@$dr = $_POST[''.$a.''];
}
return @$dr;
}
?>
I przykładowe wywołanie (z pliku pan_wynik.php):
$gospodarze_add = druzyna('gospodarze');
Napiszcie co myślicie o tym rozwiązaniu.
Jeśli chodzi o pozbycie się tego fragmentu kodu o którym pisze mortus:
Cytat(mortus @ 17.06.2011, 11:17:55 )

<?php
...
// Uważam, że poniższy kod jest bez sensu i nie ma prawa bytu, a przepisałem go tylko po to, żeby pokazać, jak może wyglądać Twoja funkcja
if(isset($_POST[$name])) { $dr = $_POST[$name];
}
return $dr;
}
?>
To bez tego funkcja nie działa. Pozdrawiam

P.S: mortus, a oco chodzi w tej regule DRY