Avatar billede the_ghost Nybegynder
11. oktober 2003 - 11:43 Der er 16 kommentarer og
1 løsning

Gæstebog - MySQL

Jeg er rimelig ny inden for PHP og MySQL.. og nu sidder jeg og leger med en gæstebog, men jeg kan ikke få min database til at insætte nye indlæg, er der nogen der kan se hvad jeg gør forkert???
her er kildekoden for laes.php:
<html>
<title>Gæstebog</title>
<body>

<form name="form1" method="get" action="opdater.php">

Læg venligst en besked:
<BR>
Navn:
<input type="text" name="navn">
<BR>
Email:
<input type="text" name="email">
<BR>
<textarea name="besked" rows="8"></textarea>
<input type="submit" name="Submit" value="Indsend">

</form>

<HR>

Tak til de personer, der allerede har lagt en besked!

<HR>
<?php

$db = mysql_connect("localhost","root");

mysql_select_db("gaestebog", $db);

$result = mysql_query("SELECT * FROM inlaeg", $db);

while($myrow = mysql_fetch_row($result)){
?>

Navn: <? echo $myrow[1] ?>
<BR>
Email: <? echo $myrow[2] ?>
<BR>
Besked: <? echo $myrow[3] ?>
<BR>

<HR>

<?
}
?>

</body>
</html>

-------
og her er kilekoden for opdater.php:
<?php
$db = mysql_connect("localhost","root");

mysql_select_db("gaestebog", $db);

$sql ="INSERT INTO inlaeg (navn, email, besked)
VALUES('$navn','$email','$beksed')";

$result = mysql_query($sql);
?>
<html>
<title>Opdater</title>
<body>
Tak for det. <a href="laes.php">Klik for at vende tilbage til gæstebogen.</a>
</body>
</html>
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 11:44 #1
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 11:45 #2
Du har skrevet '$beksed'  istedet for '$besked'
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 11:54 #3
ahhh... hvordan kunne jeg havde overset det.. nå men nu har jeg rettet det og der virker stadigvæk ikke.. Det eneste der sker, er at den kommer med:

Navn:
Email:
Besked:

Der kommer ikke til at stå noget udenfor de forskellige poster
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:00 #4
Har du tjekket om det indtastede kommer ind i databasen ?

Forstår ikke helt hvad du bruger dette til, på den første side:
<?php

$db = mysql_connect("localhost","root");

mysql_select_db("gaestebog", $db);

$result = mysql_query("SELECT * FROM inlaeg", $db);

while($myrow = mysql_fetch_row($result)){
?>

Navn: <? echo $myrow[1] ?>
<BR>
Email: <? echo $myrow[2] ?>
<BR>
Besked: <? echo $myrow[3] ?>
<BR>

<HR>

<?
}
?>
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:02 #5
det kommer ikke ind i database.

.. og jeg bruger det til at vise de forskellige inlæg der er kommet på siden
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:06 #6
Står det du indtaster i felterne oppe i adresselinie?

Er du sikker på at felterne i din database hedder navn, email, besked og er stavet rigtigt ?
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:06 #7
Den opretter en ny post i databasen, men der kommer ikke til at stå noget af det, som jeg skrev i formularen på laes.php
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:09 #8
ja.. oppe i adressen lignen står der:
http://localhost/sql/gaestebog/opdater.php?navn=asdas&email=dasd&besked=asdasdasd&Submit=Indsend
når jeg indtaster
asdad ved navn
dasd ved email
& asdasdasd ved besked

... og felterne i min database hedder nøjagtigt det samme som jeg har angivet i min kildekode
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:11 #9
har du på side 2 prøvet at printe $email, $besked og $navn for at se om den får fat på teksten eller det er indsættelsen der fejler
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:16 #10
nu har jeg tilføjet linierne:
<? echo $navn ?>
<br>
<? echo $email ?>
<br>
<? echo $besked ?>

nederst i opdater.php og der sker ikke noget... jeg tror godt at den kan indsætte i databasen, da når jeg trykker på opdater ved opdater.php, for derefter at gå over på laes.php er der kommet en ny post. problemet er bare at der ikke står noget ved den andet end:
Navn:
Email:
Besked:
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:18 #11
Jeg sidder og bruger hæftet "Databasestyrede websider" fra IDG. Og jeg har skrevet hvad der står deri ordret, jeg kan bare stadigvæk ikke få det til at fungere
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:20 #12
Men når der kommer noget frem med de echo linier du har skrevet, får den jo slet ikke tekstem fra laes med over på opdater, og det undre mig lidt når du siger at det indtastede kommer til at stå i adresselinie. Prøv lige at ændre GEt til POSt på laes.php
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 12:23 #13
det virker stadigvæk ikke, nu står der heller ikke noget oppe i adresselinien
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:27 #14
Det skal der heller ikke når du bruger post. Kan ikke se hvad der er galt.
Avatar billede detox Nybegynder
11. oktober 2003 - 13:25 #15
Du har sikkert 'register_globals=Off'. Så prøv med:

$sql ="INSERT INTO inlaeg (navn, email, besked)
VALUES('$_POST[navn]','$_POST[email]','$_POST[beksed]')";
Avatar billede the_ghost Nybegynder
11. oktober 2003 - 13:30 #16
mange tak detox, nu virker det (med en lille ændring fra _POST til _GET).. kan du ikke lige lave et svar, så kan jeg give dig pointene
Avatar billede detox Nybegynder
11. oktober 2003 - 13:42 #17
Jo da, c",)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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