Tarkoituksena olisi tehdä http://www.kineliiga.tk - sivustolle
skripti, jolla pelaajia "ostetaan". Perusidea oli, että teen mysql_queryn, jolla tarjottu summa tallennetaan tietokantaan, jos pelaaja on myynnissä.
Myyntiaika olisi kolme päivää myyntiinlaittopäivämäärästä. Sitten kun tämä aika on kulunut pelaajasta ei voisi enää tarjota.
Voisiko joku neuvoa, miten tuollaisen voisi tehdä? Ongelmat ovat siis tuon päivämäärän kanssa.
Hmm, siis päivämäärässä on ongelmaa.. Ajan tallentaminen onnistuu ehkä helpoiten php:n time()-funktiolla, jota sitten muokataan date():lla. Aina sivunlatauksen yhteydessä vaan tarkistetaan, onko kyseisen pelaajan myyntiinlaitosta kulunut jo kolme vuorokautta.
Ajan tallentaminen tietokantaan kannattaa tehdä tietokannan ymmärtämässä formaatissa, eikä php:n time():llä, jolloin sen käsitteleminen on paljon helpompaa:
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Jotain tuollaista ajattelinkin olevan, mutten viittinyt laittaa tuohon kuitenkaan:) Katsotaan jos huomenna edes ymmärtäisin ajv:n linkin sisältöä :)
Juu, elikkä jäin pohtimaan vielä tuota "myyntiaika kolme päivää myyntiinlaittopäivämäärästä" ja kokeilin seuraavan kyselyn toimivaksi:
SELECT pelaaja, (aika > ( NOW( ) - INTERVAL 3 DAY )) AS Olenko_myynnissa FROM pelaajat
Elikkä `aika` on aika, jolloin ilmoitus on jätetty ja (aika > ( NOW( ) - INTERVAL 3 DAY )) AS Olenko_myynnissa on ns. BOOLEAN-haku, eli kysely palauttaa kutakuinkin seuraavanlaista:
+----------+------------------+ |Pelaaja | Olenko_myynnissa | +----------+------------------+ |Pelaaja1 | 1 | |Pelaaja2 | 0 | |Pelaaja3 | 1 | +----------+------------------+
Edit: CURDATE() -> NOW()
en sitten tänääkään tuosta http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
mitään ymmärtänyt :)
Miten sen ajan saa tallennettua tietokantamuotoon?
INSERT INTO pelaajat VALUES aika = (now()) WHERE id = 1
Tuota kokeilin, muttei toiminut.
INSERT INTO: Lisää tietokannan tauluun uuden tietueen
UPDATE: Päivittää olemassa olevaa tietuetta
En tiedä kumpaa halusit tehdä, päivittää id 1 olevaa tietuetta vai lisätä uuden tietueen id:llä 1, joten ohessa molemmat:
INSERT INTO pelaajat SET aika = NOW(), id = 1 UPDATE pelaajat SET aika = NOW() WHERE id = 1
ja aika-kentän tyyppi pitää luonnollisesti olla aikatyyppi (itse suosin DATETIME, toiset TIMESTAMP, kolmannet jotain muuta).
Heh. Enpä edes tajunnut tuollaista (/tuollaisia) yksinkertaisia virheitä prkl.
Aihe on jo aika vanha, joten et voi enää vastata siihen.