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.