Terve,
törmäsin ongelmaan geneerisen muuttujan käsittelyssä. Koodini käsittelee formilta tulleet tiedostot post-methodin kautta. Ongelma on se, että en osaa muodostaa tuota muuttujaa geneerisesti käsiteltäväksi.
Osa varmaankin jo muistaa, mistä tämä tuli vastaan:
https://www.ohjelmointiputka.net/keskustelu/
Tässä alla se koodi, jossa noita 30 muuttujaa yritän käsitellä. Neuvokaas taas osaamatonta.
Siis mitä ihmettä? O_o Valitse näistä:
<?php $x = $_POST["arvo_1"]; # ilman muuttujaa $x = $_POST["arvo_$i"]; # muuttujalla $x = $_POST["arvo_".$i]; # muuttujalla toinen tapa echo $x; // Tulostaa esim. 'MOI' $x = '$_POST["arvo_1"]'; # ilman muuttujaa $x = '$_POST["arvo_'.$i.'"]'; # muuttujalla $x = "\$_POST['arvo_$i']"; # muuttujalla toinen tapa echo $x; // Tulostaa esim. '$_POST["arvo_1"]'
Kiitti! En tiennytkään, että nämä toimii.
$x = $_POST["arvo_$i"]; # muuttujalla $x = $_POST["arvo_".$i]; # muuttujalla toinen tapa
Tähän samaan liittyen. Onko tuo luupissa sijoittaminen yleensäkään mahdollista, kun jälkimmäinen toimii ok, mutta ensimmäinen ei. (toivottavasti copy/Paste ei tehnyt pahoja virheitä...)
Funktio:
<?php Function hae($row,$kentta) { if ($_POST[$kentta]<0) { return 'NULL'; } else { return $row[$_POST[$kentta]]; }
Tää toimimaton:
<?php $q = "insert into taulu values ('avain',". for ($a=1;$a<5;$a++) { "'".hae($row,'kentta_'.$a)."',". } "current_timestamp".");";
Tämä taas toimii
<?php $q = "insert into taulu values ('avain','". hae($row,'kentta_1)."','". hae($row,'kentta_1)."','". hae($row,'kentta_1)."','". hae($row,'kentta_1)."','". hae($row,'kentta_1)."','". "current_timestamp".");";
PHP:ssa käytetään .= -operaattoria kahden (tai useamman) merkkijonon yhdistämiseen. Alla koodisi korjattuna, josta varmasti jo ymmärrät sen toiminnan.
<?php $q = "insert into taulu values ('avain',"; for ($a=1;$a<5;$a++) { $q .= "'" . hae($row,"kentta_$a") . "',"; } $q .= "current_timestamp);"; ?>
Olisi hyvä vähintään tutustua PDO:n ihmeelliseen maailmaan. Sillä kannattanee hoitaa tuo rajapinta-tietokanta -välinen yhteys, säästyt tietoturvaongelmilta, joista on Mureakuhan Wikissäkin oma artikkelinsa. Toki jos tekemäsi skripta tulee vain omaan tai tutun porukan käyttöön, on aika sama millä tuon toteuttaa.
lainaus:
Toki jos tekemäsi skripta tulee vain omaan tai tutun porukan käyttöön, on aika sama millä tuon toteuttaa.
Datan syöttö varmistetaan myös syötevirheiden vuoksi, ts. kyllä ne tututkin osaa datan hajottaa vaikka vahingossa.
Kiitos taas valaisusta!
Aihe on jo aika vanha, joten et voi enää vastata siihen.