Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL koodi lyhemmin

Olli [21.08.2011 08:49:45]

#

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

-tossu- [21.08.2011 11:36:28]

#

Eihän tuo koodi ole kuin kaksi riviä pitkä. Mielestäni sitä ei kannata enää yrittää lyhentää.

Kysely tosin hakee turhaaan kaikki sarakkeet.

Metabolix [21.08.2011 12:30:35]

#

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.

qeijo [21.08.2011 14:43:38]

#

$esitysnimi = mysql_result(mysql_query("SELECT nimi FROM varasto WHERE id = {$id}", $yhteys), 0, 0);

Kannattaako tolle nyt oma funktio tehdä.

The Alchemist [21.08.2011 18:34:53]

#

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()...

Olli [21.08.2011 18:50:43]

#

kiitoksia avuista =)

qeijo [22.08.2011 10:17:40]

#

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);

Vastaus

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

Tietoa sivustosta