Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ja taulukot

geggo74 [29.10.2009 17:03:36]

#

Kun haen SQL- kyselyllä taulusta tietoa, ja tulostan ne näytölle html- taulukkona, niin miten saan mahdolliset muutokset taulukossa, esim. kappalemäärät jne. syötettyä takaisin samaan tauluun ?

B_R_H [29.10.2009 17:12:42]

#

Ilmeisesti tarkoitat lähettämättä samaa sivua uudelleen?
Jos et halua lähettää sivua uudestaan, on mielestäni luontevin tapa käyttää ajaxia.

Siitä vaaan opettelemaan.
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=ajax

geggo74 [29.10.2009 18:11:05]

#

B_R_H kirjoitti:

Ilmeisesti tarkoitat lähettämättä samaa sivua uudelleen?
Jos et halua lähettää sivua uudestaan, on mielestäni luontevin tapa käyttää ajaxia.

Siitä vaaan opettelemaan.
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=ajax

Miten tuo onnistuisi lähettämällä sama sivu uudelleen ?

B_R_H [29.10.2009 18:30:01]

#

Eipä kai siinä oikein muita vaihtoehtoja siiten ole kuin rakentaa sivu uudelleen.

Antti Laaksonen [29.10.2009 18:55:31]

#

Tässä on esimerkki, josta on ehkä apua. Taulun nimi on tuotteet, ja siinä ovat kentät id, nimi ja hinta. Ideana on tehdä HTML-taulukosta lomake, jonka tiedot pystyy tallentamaan takaisin tietokantaan. Lomakkeessa muuttujat nimet[id] ja hinnat[id] vastaavat tuotetta, jonka numero on id.

<?php
// lista.php

mysql_connect("localhost", "", "");
mysql_select_db("testit");

$lista = mysql_query("SELECT id, nimi, hinta FROM tuotteet");

echo "<form action=\"muokkaus.php\" method=\"post\">";
echo "<table border>";
echo "<tr><th>nimi</th><th>hinta</th></tr>";
for ($i = 0; $i < mysql_num_rows($lista); $i++) {
    $id = mysql_result($lista, $i, 0);
    $nimi = mysql_result($lista, $i, 1);
    $nimi = htmlspecialchars($nimi);
    $hinta = mysql_result($lista, $i, 2);
    $hinta = htmlspecialchars($hinta);
    echo "<tr>";
    echo "<td><input type=\"text\"
                     name=\"nimet[$id]\"
                     value=\"$nimi\"></td>";
    echo "<td><input type=\"text\"
                     name=\"hinnat[$id]\"
                     value=\"$hinta\"></td>";
    echo "</tr>";
}
echo "</table>";
echo "<br><input type=\"submit\" value=\"Tallenna\">";
echo "</form>";

?>
<?php
// muokkaus.php

mysql_connect("localhost", "", "");
mysql_select_db("testit");

$nimet = $_POST["nimet"];
$hinnat = $_POST["hinnat"];

foreach ($nimet as $id => $nimi) {
    $id = intval($id);
    $nimi = mysql_real_escape_string($nimi);
    mysql_query("UPDATE tuotteet SET nimi = '$nimi' WHERE id = $id");
}

foreach ($hinnat as $id => $hinta) {
    $id = intval($id);
    $hinta = mysql_real_escape_string($hinta);
    mysql_query("UPDATE tuotteet SET hinta = '$hinta' WHERE id = $id");
}

header("Location: lista.php");
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta