Eli minulla on lomake, missä on tekstikenttä sekä comboboxi.
sekä funktio, mikä tulostaa tietokannan taulun, mikä on kirjoitettu tekstikenttään
eli:
$taulunimi = $_POST["taulunimi"]; //tekstikentän arvo if($_POST["taulunimi"]) //onko painettu hae nappia { naytataulu("tietokanta", "$taulunimi"); } function naytataulu($tietokanta, $taulunimi) { koodia... Otetaan yhteys tietokantaa... $kentat = mysql_list_fields($tietokanta, $taulunimi, $mysql_yhteys); koodia... koodia... $result = mysql_query("SELECT * FROM $taulunimi"); koodia... tulostetaan tiedot selaimelle jne... }
Jos nyt haluan tehdä saman jutun comboboxille. Eli jos haettu combosta arvo ja painettu sen hae-nappia, niin onko ainoa mahdollisuus tehdä koko juttu uudelleen, eli:
$nama = $_POST["esimerkki"]; //combon-arvo if(isset($_POST['send'])) //onko painettu hae2 nappia { naytataulu2("testDatabase", "$nama"); } function naytataulu2($tietokanta, $nama) { eli muuten sama funktionkoodi, mutta $taulunimi on $nama }
eli onko "helpompaa" / "siistimpää" tapaa tehdä tämä, kuin
nimetä funktio näytätaulu nimeksi näytätaulu2, jossa vain 1 muuttuja on eri niminen ?
Sama funktio kelpaa molemmissa tapauksissa.
Muuttujan nimi funktion määrittelyssä ja muuttujan nimi funktion kutsussa ovat kaksi eri asiaa.
Voit siis määritellä funktion näin:
function naytataulu($tietokanta, $taulunimi)
Ja kutsua funktiota näin:
naytataulu("testi", $taulunimi);
naytataulu("testi", $nama);
naytataulu("testi", $abcdefg);
Funktion alussa tapahtuu kussakin tapauksessa seuraavaa:
$taulunimi (funktio) = $taulunimi (skripti);
$taulunimi (funktio) = $nama (skripti);
$taulunimi (funktio) = $abcdefg (skripti);
Siis funktion muuttujan arvoksi tulee sille välitetty skriptin muuttujan arvo.
PS. Pelkkää muuttujaa ei kannata ympäröidä lainausmerkein.
Kiitos antti.
Oli perusasiat hukassa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.