Avatar billede fozie Nybegynder
12. februar 2008 - 17:07 Der er 15 kommentarer og
1 løsning

Gæstebog.

Hej. Jeg er nybegyndt programmør, og har arbejdet med det siden igår aftes.
Jeg sidder og rodder med en gæstebog, som jeg 100% selv har lavet indtil videre, som man nok også kan se på koden :P. Men jeg vil gerne lige have lidt hjælp til at få det jeg har indtil videre rettet, og vil gerne have lidt hjælp til det med at uploade til databasen. Jeg kan ikke rigtig finde ud af at få info med over fra den første fil, og ved ikke engang om den første fil (altså gb.php) er rigtig.
Jeg vil gerne have at i forklare hvad i gør, osv osv :).

Her er koden til gb.php:

[code]<form action="indsaet.php" method="post">
&nbsp;Navn:
<input type="text" name="navn" size="20"><p>Besked:<br>
<textarea rows="5" name="besked" cols="20"></textarea></p>
<p><br>

<input type="submit" value="Send" name="B1">

</p>

</form>[/code]
[code]
<?php
mysql_connect("localhost", "fozie_dk", "KODEN") or die(mysql_error());
mysql_slecet_db("fozie_dk") or die(mysql_error());
?>
<?php
besked = $besked
navn = $navn

<?php
mysql_query("INSERT INTO gb1 (navn, besked) VALUES ('$navn', '$besked')") OR DIE(mysql_error());
?>[/code]

Og plx plx, spar mig fra nedgørende kommentare.
Tak.
Avatar billede fozie Nybegynder
12. februar 2008 - 17:07 #1
damm [code] og [/code] skal bare ignoreres ;)
Avatar billede dkfire Nybegynder
12. februar 2008 - 17:17 #2
hvordan ser indsaet.php ud ???
Avatar billede fozie Nybegynder
12. februar 2008 - 17:18 #3
<?php
mysql_connect("localhost", "fozie_dk", "KODEN") or die(mysql_error());
mysql_slecet_db("fozie_dk") or die(mysql_error());
?>
<?php
besked = $besked
navn = $navn

<?php
mysql_query("INSERT INTO gb1 (navn, besked) VALUES ('$navn', '$besked')") OR DIE(mysql_error());
?>
Avatar billede zurekk Nybegynder
12. februar 2008 - 17:23 #4
<?php ?> er kun til at holde PHP-koden for sig selv. Så det er ikke nødvendigt at stoppe/starte et nyt tag, hvis der ikke skal anden kode imellem.

"besked = $besked navn = $navn"
Variabler angives sådan her:
$besked = "value";
$navn = "value";

Når en form bliver submitted med POST, så henter du input'sne med $_POST(eks. $_POST['besked']), og ved GET henter du dem med $_GET.

Derfor kunne din kode eksempelvis se sådan ud:

<form action="gb.php" method="post">
Navn: <input type="text" name="navn" /><br />
Besked: <textarea name="besked"></textarea><br />
<input type="submit" name="ny_besked" value="Post besked." />
</form>

<?php

mysql_connect("localhost", "fozie_dk", "KODEN") or die(mysql_error());
mysql_slecet_db("fozie_dk") or die(mysql_error());

if( $_POST )
{
$navn = $_POST['navn'];
$besked = $_POST['besked'];

if( empty( $_POST['navn'] ) ) print 'Navn, tak!';
else $navn = stripslashes( $_POST['navn'] );

if( empty( $_POST['besked'] ) ) print 'Besked, tak!';
else $besked = stripslashes( $_POST['besked'] );

if( $navn AND $besked )
{
mysql_query("INSERT INTO gb1 (navn, besked) VALUES ('$navn', '$besked')") OR ( $error = mysql_error() );

if( !$error ) print 'TILFØJET!!';
}
}

?>
Avatar billede fozie Nybegynder
12. februar 2008 - 17:28 #5
Skal lige spise, så ser jeg på det :)
Avatar billede fozie Nybegynder
12. februar 2008 - 17:47 #6
Hmm.. Kan du forklare det med hvordan du tjekker om der står noget? ps. det virker, så post den næste besked som var :)
Avatar billede fozie Nybegynder
12. februar 2008 - 17:51 #7
Og btw. kan du hjælpe mig med at få data ud fra databasen ;s?
Avatar billede jarner Nybegynder
12. februar 2008 - 17:57 #8
mysql_slecet_db("fozie_dk") or die(mysql_error());

skal vel være
mysql_select_db("fozie_dk") or die(mysql_error());
Avatar billede fozie Nybegynder
12. februar 2008 - 18:02 #9
jarner, dem du postedet er helt ens.
Avatar billede fozie Nybegynder
12. februar 2008 - 18:13 #10
Okay, nu ser mit script sådan ud:

<form action="gb.php" method="post">
&nbsp;Navn:
<input type="text" name="navn" size="20"><p>Besked:<br>
<textarea rows="5" name="besked" cols="20"></textarea></p>
<p><br>

<input type="submit" name="ny_besked" value="Post besked.">
</P>
</form>

<?php
mysql_connect("localhost", "fozie_dk", "KODEN") or die(mysql_error());
mysql_select_db("fozie_dk") or die(mysql_error());


if($_POST)
{
$navn = $_POST['navn'];
$besked = $_POST['besked'];

if(empty($_POST['navn'])) print 'Navn.';
else $navn = stripslashes($_POST['navn']);

if(empty($_POST['besked'])) print 'Besked.';
else $besked = stripslashes($_POST['besked']);

if($navn AND $besked)
{
mysql_query("INSERT INTO gb1 (navn, besked) VALUES ('$navn','$besked')") OR ($error = mysql_error());
if(!$error) print 'Tilføjet.';
}
}
?>
<hr>
<?
$query = mysql_query("SELECT * FROM gb1 ORDER BY id DESC LIMIT 1");
$row = mysql_fetch_assoc($query);
echo 'navn $row['navn'] "</br>" $row['besked'];
?>


Den laver fejl i den nederste del, den hvor jeg vil have den til at udskrive. Hvad gør jeg forkert?
Avatar billede fozie Nybegynder
12. februar 2008 - 18:17 #11
fejlen ligger heri:
<?
$query = mysql_query("SELECT * FROM gb1");
while($row = mysql_fetch_assoc($query))
{
echo 'navn $row['navn'] "</br>" $row['besked']';
}
?>
Avatar billede mussepower5 Nybegynder
12. februar 2008 - 18:45 #12
eeh.. måske skulle du huske <?php og ikke <?
Avatar billede zurekk Nybegynder
12. februar 2008 - 18:48 #13
Ja som musse siger, prøv med <?php.

Men får du en fejlmeddelse, eller sker der bare intet?

Prøv med:

$query = mysql_query("SELECT * FROM gb1");

if( mysql_num_rows( $query ) )
{
while($row = mysql_fetch_assoc($query))
{
  echo 'navn $row['navn'] "</br>" $row['besked']';
}
Avatar billede zurekk Nybegynder
12. februar 2008 - 18:50 #14
Hov, kom til at trykke send en smule for hurtigt.

Sådan her skulle det se ud:

if( mysql_num_rows( $query ) )
{
while( $row = mysql_fetch_assoc( $query ) )
{
print $row['navn'] . '<br />' . $row['besked'] . '<hr />';
}
}

Og tror din kode vil blive pænere i længden hvis du udskriver ting som "<hr />" med en print/echo, istedet for at stoppe php, udskrive, starte php igen :)
Avatar billede fozie Nybegynder
12. februar 2008 - 19:06 #15
Det hele virker, skriv en post som svar:)
Avatar billede zurekk Nybegynder
12. februar 2008 - 20:57 #16
Vær så god.
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