Avatar billede compac Seniormester
18. marts 2005 - 14:11 Der er 4 kommentarer og
1 løsning

Relations database

Jeg har lavet en test-database med 2 tabeller:

Første tabel: husk
husk_id        primær nøgle  auto_inc.
datering
tekst
mail

Anden tabel: text

sjov_id    primær nøgle  auto_inc.
husk_id
besked

Jeg mener, at husk_id skal have samme tal i begge felter når man indtaster data alle tabeller. I mit tilfælde kommer der blot et 0 i husk_id i tabellen "text".

Her er koden:
<html>
<head>
</head>
<body>
<form method="POST" action="<? $PHP_SELF; ?>?test=1">
Dato:<input type="text" name="datering"><br>
Tekst:<input type="text" name="tekst"><br>
E-mail:<input type="text" name="mail"><br>
Besked:<input type="text" name="besked"><br>
<input type="submit" name="submit" value="Indtast data">
</form>
</body>
</html>

<? if($test){ ?>
<form method="POST" action="<? $PHP_SELF; ?>?ok=1&datering=<? print $datering; ?>&tekst=<? print $tekst; ?>&mail=<? print $mail; ?>&besked=<? print $besked;?>">
<table width="100" border="0" cellspacing="0" cellpadding="3">
  <tr>
    <td>Datering:</td>
    <td><? print $datering; ?></td>
  </tr>
  <tr>
    <td>Tekst:</td>
    <td><? print $tekst; ?></td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><? print $mail; ?></td>
  </tr>
<tr>
<tr>
    <td>Besked:</td>
    <td><? print $besked; ?></td>
  </tr>
<tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="Godkend"></td>
  </tr>
</table>
</form>


<? } ?>
<?php
if($ok)
{
$db = mysql_connect("localhost", "root","");
mysql_select_db("sjov_db",$db);
$result = mysql_query("INSERT INTO husk(datering,tekst,mail) VALUES('$datering', '$tekst','$mail')");
$result = mysql_query("INSERT INTO text(besked) VALUES('$besked')");
echo "Kode er indtastet.\n";
$ok = "";
}
?>

Hvor kan fejlen ligge?
Avatar billede arne_v Ekspert
18. marts 2005 - 14:16 #1
Prøv:

$result = mysql_query("INSERT INTO text(husk_id,besked) VALUES(LAST_INSERT_ID(),'$besked')");
Avatar billede compac Seniormester
18. marts 2005 - 15:04 #2
Ja - det gav det ønskede resultat. Men databasen burde vel kunne sættes op så LAST_INSERT_ID ikke er nødvendig??
Avatar billede arne_v Ekspert
18. marts 2005 - 15:08 #3
Det tvivler jeg på
Avatar billede arne_v Ekspert
10. april 2005 - 17:41 #4
OK ?
Avatar billede compac Seniormester
11. april 2005 - 10:44 #5
Ja,  et alternativ er at skrive:
$husk_id = mysql_insert_id();  //get the id of the last query
imellem de to insert-sætninger. Så fastholder man $husk_id værdien.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester