Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tietojen hakeminen tietokannasta lomakkeella

Rintsi [23.01.2016 04:56:59]

#

Tein palkkalaskurin käyttäen pohjana putkasta löytynyttä palkkalaskuria. Nyt laskuri lähettää tiedot tietokantaan onnistuneesti ja tarkoitus olisi saada aikaiseksi haku jolla voin listata työntekijän nimen + palkkakuukauden perusteella tiedot yhdelle sivulle.

Tällä koodilla käsittelen palkan lisäämisen tietokantaan

<?php
$virhe = "";
$yhteysNro = mysql_connect("localhost","xxkäyttäjä","xxxxxxxxxxxxxxxx");
if ($yhteysNro)
{
if (mysql_selectdb('hr'))
{

 $sql_lauseke = 'INSERT into palkat values(' .
"\"{$_POST['pvm']}\", " .
"\"{$_POST['tyontekija']}\", " .
"\"{$_POST['tuntipalkka']}\", " .
"\"{$_POST['tuntimaara']}\", " .
"\"{$_POST['selite']}\");";
mysql_query ($sql_lauseke)
or $virhe = "Virhe: " . mysql_errno() . ": " . mysql_error();
}
}
?>

<!DOCTYPE html>

<html>
<head>
</head>
<body>
<?php
if (strlen($virhe) > 0)
{
print("<h2>Tallennusvirhe</h2>");
print($virhe);
}
else
print("<h2>Tiedot on talletettu</h2>");
?>
<p>
<a href="palkanlisays.php">Takaisin lomakkeelle</a>
</body>
</html>

hakulomakkeessa olisi siis tarkoitus käyttää

<input type="date" name="pvm">

JA

<SELECT NAME="tyontekija">
				<OPTION VALUE="ei valittu">Työntekijä
				<OPTION VALUE="ulla taalasmaa">Ulla Taalasmaa
				<OPTION VALUE="seppo taalasmaa">Seppo Taalasmaa
				<OPTION VALUE="jyrki käteinen">Jyrki Käteinen
				<OPTION VALUE="johanna tukiainen">Johanna Tukiainen
				<OPTION VALUE="riku rantala">Riku Rantala
				</SELECT>

kenttiä..

Kuinka tästä aloittelisin, en tähän löytönyt ohjeita..

-Rintsi

HTML5 [23.01.2016 07:12:36]

#

Koodi näyttää vaaralliselta: SQL-kyselyyn upotetaan merkkijonoja suoraan, ilman minkäänlaista tarkastusta tai escape-toimintoa.

Nykyään PHP:ssä pitäisi käyttää PDO:ta. Putkassa on siitä hyvä opas.

Grez [23.01.2016 08:13:22]

#

HTML5 kirjoitti:

Nykyään PHP:ssä pitäisi käyttää PDO:ta.

Se on toki yksi, mutta ei ainoa suositeltava vaihtoehto. Ja joka tapauksessa parempi kuin mysql_ komennot.

Rintsi [23.01.2016 16:45:12]

#

Teenkö sen näin oikein?

Yhteys.php:

<?php
try {
    $yhteys = new PDO("mysql:host=localhost;dbname=hr", "user", "password");
} catch (PDOException $e) {
    die("VIRHE: " . $e->getMessage());
}
$yhteys->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$yhteys->exec("SET NAMES latin1");
?>

Palkan vienti käsittelijälle:

<h1>Palkan lisäys</h1>
<form action="kasittely.php" method="post">
<SELECT NAME="Tyontekija">
<OPTION VALUE="tyhja"> SELECTED>ei valittu
<OPTION VALUE="jorma">jorma
<OPTION VALUE="leija"leija
<OPTION VALUE="jesse">jesse
</SELECT>
<p>Päivämäärä: <input type="date" name="pvm"></p>
<p>Tunnit: <input type="text" name="tunnit"></p>
<p>Tuntihinta: <input type="text" name="tuntihinta"></p>
<p>Selite: <input type="text" name="selite"></p>
<p><input type="submit" value="vienti"></p>
</form>

Ja käsittely:

<?php
include("yhteys.php");

$kysely = $yhteys->prepare("INSERT INTO palkka (tyontekija, pvm, tunnit, tuntihinta, selite) VALUES (?, ?)");
$kysely->execute(array($_POST["tyontekija"], $_POST["pvm"] $_POST["tunnit"] $_POST["tuntihinta"] $_POST["selite"]));
?>

Kiitos vastauksista!

Vastaus

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

Tietoa sivustosta