Moi!
Onko ehdotuksia että mikä mättää kun saan kannasta näytölle tietueita mutta INSERT ei mene perille, eli kantaan ei mene mitään..?
Todennäköisesti INSERT-lauseessa on jokin virhe. Tarkistapa se vielä kerran. Jos ei siltikään toimi, kirjoita vaikka lause (ja sen ympärillä oleva PHP-koodi) tähän.
No kuulostaa hyvinkin siltä, että sinulla on tietokannan oikeudet pielessä, eli saat lukea kantaa, mutta et kirjoittaa sinne. Valitettavasti sitä en tiedä, millä komennolla tämä korjataan.
Tuossa koodi, niin tosiaan, olisko vika sittenkin kannan oikeuksissa?? mutta se ei siis herjaa mitään vaikka ei oikeuksia olisi ?
<?php
echo '<form type="'.$PHP_SELF.'" method="post">'; //luodaan tekstikentät ja nappi
echo 'k1: <input type = "text" name = "sivun_nimi"><br>';
echo 'k2: <input type = "text" name = "sijainti"><br>';
echo '<input type="hidden" name="lisays" value="tehty">';
echo '<input type="submit" value="Lisää">';
if ("lisays" == "tehty") //suoritetaan kun nappia painetaan
{
$yhteys = mysql_connect("localhost:3306", "root", "");
mysql_select_db("testi");
$query = "INSERT INTO sivut ('sivun_nimi','sijainti') VALUES ('$sivun_nimi','$sijainti')";
mysql_query($query);
mysql_close($yhteys);
}
?>
Vika taitaa olla siinä, että olet kirjoittanut kenttien nimet heittomerkkien sisään. Kirjoita INSERT-lause muodossa...
$query = "INSERT INTO sivut (sivun_nimi, sijainti) VALUES ('$sivun_nimi', '$sijainti')";
...niin voisi alkaa toimia, jos taulun nimi ja kenttien nimet ovat muuten oikein.
Oikeuksista ei tosiaan taida olla kiinni, jos yhdistät tietokantaan roottina (ainakin koodin perusteella).
Itse olen oppinut kirjoittamaan kenttien nimet laskevilla aksenteilla (`). En tiedä vaikutuksista. Eli näin:
$query = "INSERT INTO sivut (`sivun_nimi`, `sijainti`) VALUES ('$sivun_nimi', '$sijainti')";
Nyt vika ? selvisi, kun vaihdoin $_REQUEST:in $_GET:in tilalle niin alkoi pelaamaan..?
Yllättävää kun formi lähetetään POSTilla eikä GETillä. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.