Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Funktion uusiokäyttö

mrkebab [07.08.2006 19:54:16]

#

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 ?

Antti Laaksonen [07.08.2006 21:40:33]

#

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.

mrkebab [07.08.2006 22:05:08]

#

Kiitos antti.

Oli perusasiat hukassa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta