En millään saa kehiteltyä scriptiä seuraavanlaiseen tapaukseen (uskokaa pois, tää amatööri on täällä koko päivän pyöritelly vaikka mitä koodeja tuon ratkaisemiseksi...):
Minulla on tietokannassa päivämäärä, esimerkiksi: 2011-01-12
Haluaisin saada sivuille esiin seuraavat päivämäärät:
2011-01-12 + 30pv
2011-01-12 + 60pv
2011-01-12 + 90pv jne.
Ja muotoon: j.m.Y
Sitten minulla olisi hieman haastavampi koodikysymys jonka toteutusmahdollisuuteen en ole edes vielä perehtynyt. Varmaankin aika hankalaksi koodiksi menee, mutta jos jollain olisi tähän joku mukailtava/esimerkkikoodi/-vinkki niin olisi aivan mahtavaa:
Minulla on lomakkeessa textarea johon syöttäisin useamman rivin tiedot samalla kertaa ja jokin skripti sitten erottelisi ne omikse riveikseen ja vieläpä jaottelisi oikeat tiedot oikeisiin sarakkeisiin, esimerkiksi:
2011-01-12 ++ http://google.fi ++ 9 ++ 100
2011-09-22 ++ http://google.fi ++ 9 ++ 100
++ erotin merkkinä sen takia, että tuolla on tuo http://. Onko tällaista mahdollista toteuttaa?
Molemmat kuulostaa aika helpoilta toteuttaa.
Grez, herttileijaa - mää tolla sun aika-systeemillä ton jo kerran kokeilin, mutta ilmeisesti oli joku bitti vinksallaan kun herjas jotain epämäärästä. Kiitos molemmista, katsotaan miten mää nyt pääsen etiäpäin :)
Joo oon ihan peukku keskellä kättä tän lomakejutun kanssa. Jos mulla on siis textarea jonka nimi on "tiedot" ja lomake käsitellään tän tyyppisellä koodilla, niin miten mää nyt ton Grezin koodin tonne sovellan :D?
En osaa tehdä tämmösiä juttuja, missä tallennetaan monta eri tietoa samaan aikaan... Enkä kyllä käyttään muuttujiakaan tuolla insertissä. Haluaiskohan joku tooosi ystävällinen auttaa :)?
<?php //avataan yhteys kantaan ... //valitaan tietokanta ... //syötetään tieto kantaan mysql_query("INSERT INTO kilpailut (paivamaara, osoite, numero1, numero2) VALUES ( '".mysql_real_escape_string($_POST['paivamaara'])."', '".mysql_real_escape_string($_POST['osoite'])."', '".mysql_real_escape_string($_POST['numero1'])."', '".mysql_real_escape_string($_POST['numero2'])."' )"); //siirretään käyttäjä etiäpäin ... ?>
Laita kysely tuohon foreachiin ja käytä noita $url, $luku1 jne. muuttujia.
Macro, mulla ei oo mitään käsitystä miten saan ton kyselyn sinne. Yritin täältäkin: https://www.php.net/manual/en/control-structures.foreach.php jo etsiä vastausta mutta joo, mä oon liian avuton tähän :) Eikö kukaan haluais tehdä ihan lyhyttä kahden muuttuja esimerkkiä mulle ?
Yhdistämällä Macron neuvomalla tavalla Grezin ja Merlinin koodit saadaan:
$rivit = explode("\n", $_POST['tiedot']); foreach ($rivit as $rivi) { list($pv, $url, $numero1, $numero2) = explode('++',$rivi); mysql_query("INSERT INTO kilpailut (paivamaara, osoite, numero1, numero2) VALUES ( '".mysql_real_escape_string($pv)."', '".mysql_real_escape_string($url)."', '".mysql_real_escape_string($numero1)."', '".mysql_real_escape_string($numero2)."' )"); }
Edellyttäen siis, että se textareassa oleva tieto on tuossa aikaisemmin mainitsemassasi muodossa:
2011-01-12 ++ http://google.fi ++ 9 ++ 100
2011-09-22 ++ http://google.fi ++ 9 ++ 100
AkeMake, oi kiitos aivan kamalasti <3 Nyt testailemaan (ja opettelemaan tuota foreachin merkitystä/käyttöä) ->
Ei tee uusia rivejä tietokantaan vaikka syötän rivit:
1 ++ laji ++ alaisuus ++ 0000-00-00 ++ http://moi.fi ++ paikka ++ luokka ++ tulos ++ sijoitus
100 ++ laji ++ alaisuus ++ 0000-00-00 ++ http://moi.com ++ paikka ++ luokka ++ tulos ++ sijoitus
miksi :(?
form.html
<form method="post" action="tiedosto3.php" onSubmit="submitonce(this)" name="horseregistery"> <p><textarea rows="30" cols="110" name="tiedot">id ++ laji ++ alaisuus ++ 0000-00-00 ++ http:// ++ paikka ++ luokka ++ tulos ++ sijoitus</textarea></p> <input type="submit" name="submit" value="Lähetä kisoja" /> </form>
tiedosto3.php
//syötetään tieto kantaan $rivit = explode("\n", $_POST['tiedot']); foreach ($rivit as $rivi) { list($id, $laji, $alaisuus, $paivamaara, $osoite, $paikka, $luokka, $tulos, $sijoitus) = explode('++',$rivi); mysql_query("INSERT INTO kilpailut (id, laji, alaisuus, paivamaara, osoite, paikka, luokka, tulos, sijoitus) VALUES ( '".mysql_real_escape_string($id)."', '".mysql_real_escape_string($laji)."', '".mysql_real_escape_string($alaisuus)."', '".mysql_real_escape_string($paivamaara)."', '".mysql_real_escape_string($osoite)."', '".mysql_real_escape_string($paikka)."', '".mysql_real_escape_string($luokka)."', '".mysql_real_escape_string($tulos)."', '".mysql_real_escape_string($sijoitus)."' )"); }
Varmaan kannattaisi myös trimmata ne arvot, jos plussien ympärillä on kerran välejäkin. Ja taas kerran ongelma luultavasti selviäisi aivan suoraan, jos käyttäisit tietokantayhteyteen PDO:ta virheilmoitusten kera tai tarkistaisit kyselyn onnistumisen if-lauseella ja virheilmoituksen mysql_error-funktiolla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.