Kun ei meinaa onnistua millään! Ajatus on jo ihan solmussa, eikä ratkaisua tule mieleen vaikka päälään seisoisi. Voisko joku php-guru tarkastaa koodin?
Olen vasta itseopiskeluna tutustumassa php:n ihmeelliseen maailmaan. Tämä on vain yksi harjoite mitä koetan väsätä.
----------------- lisäyslomakesivu ---------------
artisti:
levy:
hinta:
varastossa:
-------------- sivu, jonka pitäisi --------------
------ lisätä lomakkeelle kirjoituettu data ------
----------------- lisays.php ---------------------
Olen vasta itseopiskeluna tutustumassa php:n ihmeelliseen maailmaan. Tämä on vain yksi harjoite mitä koetan väsätä.
----------------- lisäyslomakesivu ---------------
artisti:
levy:
hinta:
varastossa:
-------------- sivu, jonka pitäisi --------------
------ lisätä lomakkeelle kirjoituettu data ------
----------------- lisays.php ---------------------
Vastaukset 7
Vanhimmat
En tiedä mikä tuon $localhost muuttujan sisältö on mutta yhteyteen tarvii seuraavat:
$link = mysql_connect("localhost", "user", "password")or die(mysql_error());
Tietokanta valitaan näin:
$db = mysql_select_db("levyt", $link);
Eli ainakin tuo viimeinen alaviiva ennen db:tä puuttui...
$artisti=$_POST['i_nimi'];
Tähän et tarvitse tuota '$_POST...', vaan
$artisti=$i_nimi;
ja lopuksi
$result = mysql_query ("INSERT INTO pop_rock (artisti, levy, hinta, varastossa) VALUES ('$artisti', '$levy', '$hinta', '$varastossa')") or die("Kyselyssä tapahtui virhe.: " . mysql_error());
Toivottavasti auttoi...
eihän tämä toimi vieläkään sen paremmin. Elikkä tietokannan pop_rock-tauluun kyllä tulee "tyhjä" tuote, mutta ei niitä arvoja, jotka syötetään lomakkeelta.
Nyt näyttäis olevan jotain hässäkkää lomakkeelta tulevien tietojen tallennuksessa.
$artisti=$_POST['i_nimi'];
Tähän et tarvitse tuota '$_POST...', vaan
$artisti=$i_nimi;
Tuo $_POST pitää ilmeisesti olla, koska kun poistin sen tuli virheilmoitus.
$localhost toimii kyllä, koska mysql:ssä ei ole salasanaa tai käyttäjää ellei niitä aseta. Joten localhostilla vaan sisään. =)
Minä olen jo ihan pihalla...
Kannattaa kuitenkin käyttää $_POST ja $_GET -muuttujia, koska niillä voi paikata joitain turva-aukkoja (ilmeisesti olet tekemässä jotain verkkokauppaa tms., jolloin tietoturva on mutuenkin tärkeämpi). Eli POST-muuttujathan tulee lomakkeesta (jos method=post) ja GET-muuttujat taas suoraan osoiteriviltä.
vaihda ainakin $artisti=$_POST['i_nimi']; --> $artisti=$_POST['i_artisti'];
mysql_connect($localhost); pitäisi toimia sellaisenaan ilman käyttäjätunnusta ja salasanaa
kannattaa ennen tietokantaan tallentamista siivota lisättävät tiedot mm. poistaa tagit yms. sillä nämä voivat olla mysql paha paikka :)ja voisi periaatteessa mahdolllistaa tietokantaan tallennettavan skriptin ajamisen. Lisäksi kannattaa siivoamisen jälkeen tarkastaa onko tiedot jo ennen lisätty tietokantaan. ettei käyttäjä vahingossa/tahallaan painele lähetä nappulaa.
tässähän siis on vain lyse siitä, että yritän opetella php ja mysql-ojelmointia. Ongelmaksi on muodostunut tietokantaan kirjoittaminen.
Mitä tarkoitat siivoamisella? Olisi ihan kiva jos annettaisiin ihan konkreettisia ohjeita eikä mitään epämääräisiä tee noin älä noin.
Pari unetonta yötä tekee ihmeitä!!
eli käyttämäni php-on hieman vanhempi (4.0.6) joten se $_POST piti korvata $HTTP_POST_VARS:lla.
Nyt se sitten rokkaa!!