Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Select Avg(paino) propleema

HellCome [27.04.2006 21:31:54]

#

Mitä pidemmälle ilta etenee, niin sitä enemmän vastustaa. Mikä tässä nyt mättääpi?

$keskipaino="SELECT Avg(yhteispaino) FROM kelijatausta";

if(!$yhtpaino=mysql_query($keskipaino,$yhteys))			// ajetaan kysely
	{
	print mysql_error();					// jos kysely meni pieleen
	exit();
	}

	print $yhtpaino;

lopputulos: "Resource id #17"

"kelijatausta":ssa on useampia tietueita, joissa jokaisessa on tuo kyseinen "yhteispaino" joista pitäisi saada laskettua se keskiarvo. Accessilla homma näytti pelittävän, mutta peehoopeellä ei. Voi känkkäränkkä.

Niin.. luupatahhan se pitäisi, mutta en minä sellaisesta jummarra. Vähän, kuin tarjoaisi sialle Picassoa.

ajv [27.04.2006 21:41:44]

#

Ei tuota tarvitse loopata, sillä tuolla kyselyllä saat tulokseksi vain yhden rivin.

SELECT AVG(yhteispaino) AS keskipaino
$row =  mysql_fetch_assoc($yhteispaino);
print $row['keskipaino'];

HellCome [27.04.2006 22:38:48]

#

$sql="SELECT AVG(yhteispaino) AS keskipaino";

if(!$yhtpaino=mysql_query($keskipaino,$yhteys))			// ajetaan kysely
	{
	print mysql_error();					// jos kysely meni pieleen
	exit();
	}

$row = mysql_fetch_assoc($yhteispaino);
print $row['keskipaino'];

Tulos: "Query was empty"

Ei, ei toimi näin. "kelijatausta":ssa on X määrä kalassakäyntikertoja ja jokaisella kalassäkäyntikerralla on oma (saaliin)"yhteispaino". Näistä pitäisi saada se keskiarvo.. mutta rehellisesti sanottuna tämä koko homma alkaa maistua puulta. Yhtenä päivänä sitä luulee jo edes hieman tajuavansa php:n ja myslin oikkuja, mutta heti perään todellisuus nostaa taas rumaa päätään. Koko rojektin ideana on tehdä kalapäiväkirja josta löytyypi niin tiedonsyöttöä, - tarkkailua ja -vertailua. Tallentamisen hoitaminen kävi leikiten ja tulosten esittäminenkin meni hienosti, mutta sitten näiden "hienostelujen" kohdalla koko homma on mennyt alamäkeä.

Kalaloki sivulla on räntättynä erilliset kalakerrat, joiden tarkempia tietoja piäseepi kahtelemmaan kulloisestakin linkistä - toimii, kuin junan vessa, mutta sitten mieleen pilkahtikin ajatus hienoista yleistiedoista, kuten "suosituimmat kalastustavat (2 kpl)", "yleisimmät syötit (myöskin 2 kappaletta)", "yleisin saaliskala (sekä kyseisten eväkkäiden pyyntimäärä)", "keskim. yhteispaino (tämänhetkinen ongelma)" sekä "historian suurin fisu (ja sen elopaino)". Enhän minä poloinen silloin vielä ymmärtänyt, että moisten tietojen esiinkaivaminen olisi jumalattoman määrän kirosanoja, itkua ja hammastenkiristelyä sekä kaikkitietävän gurun ja messiaan takana.. unohtamatta ohjelmointiputkaa.

Katsokaas, kun kalapäiväkirjassa on kaksi taulua "fisut" (jossa on lueteltuna kotimaan vesistöissä viihtyvät eväkkäät) ja toisena sitten tämä surullisen kuuluisa "kelijatausta" (jossa on lueteltuna.. kröhöm..

id, päivämäärä, alkuaika, loppuaika, kuu, sade, aurinko, tuuli, suunta, pilvet, ilmanpaine, alue, paikka, etiäinen, lämpötila, houkuttelu, viehe1, viehe2, kalastustyyppi1, kalastustyyppi2, muuta, YHTEISPAINO, suurinkala, suurinpaino, saalis1, saalis2, saalis3, saalis4, saalis5, saalis6, saalis7, saalis8, _1kpl, _2kpl, _3kpl, _4kpl, _5kpl, _6kpl, _7kpl ja _8kpl.

Tuollaisen ä'ä vimpaimen menin idealistisessa ekstaasissa kyhäämään lopputyötä varten. Suuri ja mahtava guru & messias on yrittänyt jo kahden kurssin ajan takoa päähäni ymmärrystä luupeille ja muille laskuripatenteille, mutta kun ei, niin ei. Hienostihan nuo sivut toimivat ilman nuita "suurin kala" farsseja, mutta ajattelin, että ne tekisivät hienon lisukkeen muutoin, niin kuivahkoon soppaan. Tarkoitus kyllä on ottaa kyseinen hilavitkutin ihan tosikäyttöön loppuelämäni viimeisiksi päiviksi, että siinä mielessä innostusta kyllä riittää. Intoa puhkuvana ja sokeana mahtavasta ja ihmisymmärryksen ylittävästä ohjelmointikyvystäni innostuneena keksin vielä sellaisen jutun, että tekisin ENNUSTUSVEKOTTIMENKIN sudenmarjaksi kaakun päälle.

Katsokaas, kun ennustusvekottimen olisi tarkoitus kysellä tulevan kalareissun tiedot ilmanpaineista ja tuulensuuntaan aina henkimaailman meniöihin asti, jonka jälkeen jumalainen proggikseni osaisi tehdä huippumonimutkikkaita vertailuja jo käydyistä kalareissuista tähän tulevaan pettymysretkeen ja osaisi antaa tilastollisesti pätevän ennusteen tulevan reissun todennäköisistä saalismääristä, lajeista ja muista sen sellaisista. Taitaapa sekin jäädä haaveeksi, kun näin karvaan pettymyksen kautta on joutunut oppimaan nöyryyttä, kun ei edes yksinkertaista luuppia ymmärrä, eikä juuri muutakaan mitä tekee, mutta onneksi asiassa on valoisakin puoli: eivätpä muutkaan juuri ymmärrä, että mitä minä teen.

Aamen.

kayttaja-2791 [27.04.2006 22:47:14]

#

Alkuperäinen koodi:

$sql="SELECT AVG(yhteispaino) AS keskipaino";

if(!$yhtpaino=mysql_query($keskipaino, $yhteys))
{
print mysql_error(); // jos kysely meni pieleen
exit();
}

$row = mysql_fetch_assoc($yhteispaino);
print $row['keskipaino'];

Tuossa ainakin on selkeä virhe, väärä muuttujanimi. Korjattu:

$keskipainoKysely = "SELECT AVG(yhteispaino) AS keskipaino FROM taulun_nimi";

if(!$keskipainoTulos = mysql_query($keskipainoKysely,$yhteys))
{
  echo mysql_error(); // jos kysely meni pieleen
  exit();
}

$row = mysql_fetch_assoc($keskipainoTulos);
echo $row['keskipaino'];

Edit:
Alussa tuommoiset "tyhmät" virheet ovat kaikille arkipäivää, siitä ei kannata masentua. Kun tulee tuollaisia "seiniä" kannattaa pitää taukoa mielellään koko tietokoneesta. Tauon jälkeen virhe löytyy yleensä helposti. Suosittelen myös kaikille aloittelijoille mahdollisimman paljon aiheesta lukemista, sen sijaan että yrittää tehdä hommia nykyisillä vajailla tiedoilla. Suosittelen esim. Ohjelmointiputkan ja Mureakuhan (Murewikin) oppaiden tulostusta, ja niiden rauhassa lukemista. Tosin paras vaihtoehto lienee ostaa tai lainata aiheeseen liittyvä oikea kirja, niissä on yleensä jaksettu selittää asioita helpommin ymmärrettävässä muodossa.

Edit2:
ajv, hyvä pointti tuo taulu ;)

ajv [27.04.2006 22:49:31]

#

Niin ja tietenkin sun pitää kertoa mistä taulusta haet jne... Ei ollu tarkotus antaa copy-paste koodia, vaan jättää jotain omaankin harkintaan... :)

Oho, sori, en lukenu sun avautumista. Tsemppiä vaan, pidä vaikka välillä vähän taukoo koodaamisessa ja asiat saattaa kirkastuu ihan erilailla muutaman päivän päästä. Ilman motivaatiota on huono koodata.

HellCome [29.04.2006 10:50:23]

#

Toimii jälleen - hommaan olikin näin yksinkertainen vastaus:

$sql="SELECT Avg(yhteispaino) AS keskipaino FROM kelijatausta";

if(!$kysely=mysql_query($sql,$yhteys))
	{
	print mysql_error();
	exit();
	}

	$tietue=mysql_fetch_row($kysely);
	print $tietue[0];

ajv [29.04.2006 20:31:07]

#

Näin se homma etenee ;)

Tosiaan minusta hieman selkeämpi tapa mäyttää fetch_assos-funtiota:

$tietue = mysql_fetch_assoc($kysely);
print $tietue['keskipaino'];

Ymmärtää suoraan vielä vuodenkin päästä ilman suurempaa arpomista, että mitä tuossa tulostetaan.

Vastaus

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

Tietoa sivustosta