Moi
Koodi henkhaku.php tulostaa kaikki avainsanan sisältämät tietueet. Miten tietueita pääsisi editoimaan eli haluaisin jokaisen tulostuvan tietueen perään EDIT nappulan jota klikkaamalla tietuetta pääsisi muokkaamaan. Muokkaukseen löysin/editoin tiedoston editlomake.php
Millä koodirimsulla nämä saisi linkitettyä toisiinsa.
henkhaku.php
<p> Osoite haku<br /> <form action="henkhaku.php" method="post"> Syötä hakusana:<br /> <input type="text" name="keyword" size="20" maxlength="40" value="" /><br /> <input type="submit" value="Etsi"> </form> </p> <?php echo "<html><body>"; // If the form has been submitted with supplied keyword if (isset($_POST['keyword'])) { // Connect to server and select database $yhteys = mysql_connect("localhost","root","kirja") or die ("ei yhteyttä"); mysql_select_db("kanta", $yhteys) or die ("tietokantaa ei löydy"); $keyword = $_POST['keyword']; $keyword = utf8_encode($keyword); // haetaan tiedot $kysely = ("SELECT * FROM `kanta`.`employee` WHERE `lastname` LIKE CONVERT( _utf8 '%$keyword%' USING latin1 ) COLLATE latin1_general_ci OR `firstname` LIKE CONVERT( _utf8 '%$keyword%' USING latin1 ) COLLATE latin1_general_ci OR `email` LIKE CONVERT( _utf8 '%$keyword%' USING latin1 ) COLLATE latin1_general_ci"); // suoritetaan kysely $haku = mysql_query($kysely, $yhteys) or die ("virhe kyselyssä"); //luetellaan osoitteet for ($i = 0; $i <mysql_num_rows($haku); $i++){ //haetaan yhteystiedot muuttujiin $lastname = mysql_result ($haku, $i, "lastname"); $firstname = mysql_result ($haku, $i, "firstname"); $email = mysql_result ($haku, $i, "email"); //tulostetaan osoitteet echo "<b>sukunimi:</b> $lastname<br> <b>etunimi:</b> $firstname<br> <b>osoite:</b> $email<p>"; } } ?>
editlomake.php
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> <p> Sukunimi:<br /> <input type="text" name="lastname" size="25" maxlength="25" value="<?php echo $lastname; ?>" /> </p> <p> Etunimi:<br /> <input type="text" name="firstname" size="25" maxlength="25" value="<?php echo $firstname: ?>" /> <p> Osoite:<br /> <textarea name="email" rows="5" cols="30"> <?php echo $email; ?>"</textarea> </p> </p> </form> <?php // If the submit button has been pressed if (isset($_POST['submit'])) { $lastname = $_POST['lastname']; $firstname = $_POST['firstname']; $email = $_POST['email']; // Insert the product information into the product table $haku = "UPDATE employee SET lastname='$lastname', firstname='$firstname', email='$email'"; $result = mysql_query($haku); // Display an appropriate message if ($result) echo "<p>Tiedon päivitys onnistui </p>"; else echo "<p>Tiedon päivitys ei onnistunut.</p>"; } ?>
Kiitos ja kumarrus kaikille.
No laitat jokaisen tiedon perään edit-nappulan, jonka linkin yhtenä get-parametrinä on vaikka id-numero (auto increment) mikä yksilöi rivin. Sitten "editointisivulla" tarkistat mikä id-numero on lähetetty urlin mukana ja haet kannasta sen rivin.
Kiitos ja jatkokysymys. Kirjoitin seuraavanlaisen taulun
CREATE TABLE employee ( staffID SMALLINT NOT NUL AUTO_INCREMENT, lastname VARCHAR (15) NOT NULL, firstname VARCHAR (25)NOT NULL, email VARCHAR (25)NOT NULL, PRIMERY KEY(staffID));
Millä tuon ID saa ohitettua tietoa lisättäessä eli sen saa automaattisesti kasvavaksi. Ongelmia seuraavan tyyppisessä käskyssä.
INSERT INTO `employee` VALUES ('Mikä', 'Mies', 'Mikätie 9 c 14 00200 Helsinki');
INSERT INTO employee SET lastname="Sukunimi", etunimi="Etunimi", email="info@firma.com"
ja
UPDATE employee SET lastname="Sukunimi", etunimi="Etunimi", email="info@firma.com" WHERE staffId=2
Aihe on jo aika vanha, joten et voi enää vastata siihen.