Hei!
Ensimmäinen posti. =) ... Olen aloitellut php:tä tässä parin viikon aikana. Nyt teen kyselymoottoria ja kompastuin heti php:n syntaksiin. Toivottavasti joku voisi auttaa!
Yritän ahtaa SQL-kyselyyn $_POST -muuttujaa seuraavalla (ja tuhannella muulla syntaksiyrityksellä) tavalla: (alla oleva EI siis toimi)
$sql3 = ("insert into vastaukset_table ($_POST['vastaus'.$i]) values ($_POST['vastaus'.$i]");
Sain tuon ensimmäisen $_post... toimimaan yhdessä vaiheessa, mutta nyt olen unohtanut senkin syntaksin. Jälkimmäistä en ole saanut mitenkään toimimaan. Ilmeisesti ongelma liittyy " ' ´ -merkkien oikein käyttämiseen. Olisi erittäin mukavaa jos joku jeesaisi!
Tällä hetkellä kierrätän toisen muuttujan kautta nuo $_POST ...-datat:
$vastaus = $_POST["vastaus$i"];
koko lause:
$sql3 = ("insert into vastaukset_table (vastaus{$i}) values ($vastaus)");
Jos itse koodi ja sen tarkoitus ei käy järkeen niin älkää ottako kantaa. =) Kysyn vain syntaksia. Haluaisin päästä irti tuosta $vastaus-muuttujasta. Itse koodinpätkä on tällä hetkellä for-lauseessa, joka ei toimi oikein. Se on sitten aivan oma ongelmansa. =)
Ystävällisesti,
-jammupatu
$sql = "INSERT INTO palaute (nimi, palaute, email) VALUES('" . $_POST["nimi"] . "', '" . $_POST["palaute"] . "', '" . $_POST["email"] . "')";
Tuo on siis esimerkki miten se toimii
Tämä toimii myös:
$sql = "INSERT INTO palaute SET nimi = '" . $_POST["nimi"] . "', palaute = '" . $_POST["palaute"] . "', email = '" . $_POST["email"] . "'";
Suuret kiitokset!
Nyt lähti toimimaan.
=)
-Jammupatu
Eipä kestä.. kyllä se siitä vielä lähtee
Kannattaa (ehkä) myös tutustua sprintf-funktion toimintaan. sillä saa kirjotettua siistejä literaaleja ilman .-operaattoria.
esim. tuo yllä olevan voisi tehdä näin.
$sql3 = sprintf( "INSERT INTO palaute (nimi, palaute, email) VALUES ('%s', '%s', '%s')", $_POST['nimi'], $_POST['palaute'], $_POST['email'] );
tällä tavalla voi myös uusiokäyttää koodia melko helposti. kuvitellaan esim. että meillä on valmiiksi määriteltynä
$sqlinsert = "INSERT INTO a (b, c) VALUES (%s, %s)";
ja
$sqlupdate = "UPDATE a, SET b = %s, c = %s";
silloin voidaan tilanteesta riippuen asettaa kolmanteen muuttujaan $sql jompikumpi ja muodostaa täydellinen sql-lauseke sprintf($sql, $e, $f)-lauseella.
Näin muuttujia $e ja $f, sekä sql-lauseita voi käsitellä keskitetysti (=vain yhdessä paikassa) ja näin saavuttaa selkeämpää ja helpommin päivitettävää koodia.
edit:
sprintf() https://www.php.net/manual/en/function.sprintf.
Aihe on jo aika vanha, joten et voi enää vastata siihen.