Voisikohan tämän koodin tehdä lyhyemmin:
$esitysnimi = mysql_query("SELECT * FROM varasto WHERE id = '".$id."'", $yhteys); $esitysnim = mysql_result($esitysnimi, "0", "nimi");
taulu on tämän tyyppinen:
---------------------------- nimi hinta määrä id lippuja ---------------------------- ABCD 0.00 0 0 0
Eihän tuo koodi ole kuin kaksi riviä pitkä. Mielestäni sitä ei kannata enää yrittää lyhentää.
Kysely tosin hakee turhaaan kaikki sarakkeet.
Lyhyempi versio:
$haku = mysql_query("SELECT nimi FROM varasto WHERE id = {$id}", $yhteys); $esitysnimi = mysql_result($haku, 0, 0);
Tässä oletetaan, että $id on oikeassa muodossa. Lukuarvojen kohdalla lainausmerkit (ja mysql_real_escape_string) ovat turhat; syöte kannattaa vain muuttaa suoraan luvuksi:
$id = intval($id);
Jos vastaavia hakuja on paljon, kannattaa saman tien tehdä funktio, joka ottaa kyselyn ja palauttaa tuloksesta ensimmäisen arvon.
$esitysnimi = mysql_result(mysql_query("SELECT nimi FROM varasto WHERE id = {$id}", $yhteys), 0, 0);
Kannattaako tolle nyt oma funktio tehdä.
qeijo: no ainakin jos joskus vaihtaa esim. PDO:hon, niin on paljon yksinkertaisempaa kirjoittaa uusiksi vain se erillinen funktio sen sijaan, että joutuisi ripottelemaan uutta koodia vähän sinne sun tänne.
PDO:ssa muuten olisi tälle jo valmiiksi funktio PDOStatement::fetchColumn()...
kiitoksia avuista =)
Jep. Muutenkin jos tulee kantaan (jostain kumman syystä) tai kyselyn ehtoihin muutoksia, niin onhan se kivempi vaihtaa yhteen funktioon ehdot ku parsia koko koodi läpi.
Lisäksi se on kauniimpi ja helpomi muistaa.
$enim = enimi($id, $yhteys);
Aihe on jo aika vanha, joten et voi enää vastata siihen.