Avatar billede mscodedk Nybegynder
10. august 2002 - 17:14 Der er 15 kommentarer og
1 løsning

Database virker ikke......

Hej alle dudes!

Jeg har været i gang med PHP lidt.. Men denne er godt nok en af de mest trælse problemer jeg hidtil har prøvet. Jeg sad bare lige og legede med et par databaser så ville jeg jå skrive til/fra den. Men query'en siger PHP hele tiden er forkert.. Hmm håber nogen kan hjælpe mig. ;)

Her er problem sætningen:
-------------------------------------------------------
mysql_query("INSERT INTO test (Dato, Besked, Navn) VALUES ('$dato','$besked', '$navn')");
-------------------------------------------------------


På forhånd tak! :)


Up The IRons & Semper Fi

/Sir Erugor
Avatar billede gizmo-gizmo Nybegynder
10. august 2002 - 17:19 #1
Der er ingen fejl i din syntax.

"php siger hele tiden forkert"
-gider du ikke lige uddybe det?
Avatar billede speedy Nybegynder
10. august 2002 - 17:22 #2
Har du husket at connecte til en database med

mysql_connect("mysql.dinserver.dk", "ditusername", "ditpassword");
mysql_select_db("dindb");

Ellers må du som gizmo-gizmo siger uddybe hvad PHP's fejlbesked er.

/SpEeDy
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:23 #3
k  her er min php kode:

---------------------------------------------------------------------------
<html>
<head>
<title>Database test</title>
</head>
<body>

<h2 aign="center">Database test i MySQL + PHP</h2>

<br><br>

<center>
<form action="<?php echo $PHP_SELF; ?>" method="post">
<input type="hidden" name="skriv" value="1">
Navn: <input type="text" name="navn"><br><br>
<textarea name="besked" cols="20" rows="5">Din besked...</textarea><br>
<input type="submit" value="Send">
</form>
</center>

<?php
$db = mysql_connect("localhost","Admin","qak86ncs");
mysql_select_db("test", $db);

if($skriv){
  $besked = str_replace("\n", "<BR>", $besked)
  $dato_array = getdate();
  $dato = $dato_array["mday"] . "/" . dato_array["mon"] . " - " . dato_array["year"];

  mysql_query("INSERT INTO test (Dato, Besked, Navn) VALUES ('$dato','$besked', '$navn')");
}

$foresp1 = mysql_query("SELECT * FROM test ORDER BY Id DESC LIMIT 0,10");

While($data = mysql_fetch_row($foresp1)) echo "<b>Id: </b>" . $data[0] . "<b> Dato: </b>" . $data[1] . "<b> Navn: </b>" . $data[3] . "<b> Besked: </b>" . $data[2];
?>

</body>
</html>
---------------------------------------------------------------------------
Avatar billede jakoba Nybegynder
10. august 2002 - 17:23 #4
det kan være flere ting.
hvilke felter er der i tabellen test? hvad datatyper har de.

et godt trick er at sætte en  or die(mysql_error())  efter kaldet til mysql_query. så får du den fejlmelding mysql giver:

mysql_query("INSERT INTO test (Dato, Besked, Navn) VALUES ('$dato','$besked', '$navn')") or die(mysql_error());

mvh JakobA
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:28 #5
k..
Datatyper:
Id INT Auto_Increment
Dato Tinytext
Besked Longtext
Navn Mediumtext
Avatar billede speedy Nybegynder
10. august 2002 - 17:29 #6
Men hvilken fejl kommer den med ?
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:30 #7
Parse error: parse error in c:\apache\htdocs\Database\index.php on line 26

som er denne linie:

mysql_query("INSERT INTO test (Dato, Besked, Navn) VALUES ('$dato','$besked', '$navn')");
Avatar billede jakoba Nybegynder
10. august 2002 - 17:36 #8
det skulle være fint med hensyn til datatyperne.

check lige at både din databas og din talbel i den database heddet test (det er to forskellige ting; det kan være mange tabeller i een database)

men prøv at sætte or die på de steder det er muligt:

<?php
$db = mysql_connect("localhost","Admin","qak86ncs") or die("connect fejl: ".mysql_error());
mysql_select_db("test", $db) or die("selectdb fejl: ".mysql_error());

if($skriv){
  $besked = str_replace("\n", "<BR>", $besked)
  $dato_array = getdate();
  $dato = $dato_array["mday"] . "/" . dato_array["mon"] . " - " . dato_array["year"];

  mysql_query("INSERT INTO test (Dato, Besked, Navn) VALUES ('$dato','$besked', '$navn')") or die("insert fejl: ".mysql_error());
}

$foresp1 = mysql_query("SELECT * FROM test ORDER BY Id DESC LIMIT 0,10") or die("select fejl: ".mysql_error());

While($data = mysql_fetch_row($foresp1)) echo "<b>Id: </b>" . $data[0] . "<b> Dato: </b>" . $data[1] . "<b> Navn: </b>" . $data[3] . "<b> Besked: </b>" . $data[2];
?>

og fortæl hvad der kommer ud af det.
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:41 #9
k.. takker... hold on..
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:42 #10
den hviser ikke noget selvom det er på.....
Avatar billede jakoba Nybegynder
10. august 2002 - 17:43 #11
Næe hov. den fejlmelding du får har intet med mysql at gøre. den kommer fordi du magler et ; (semikolon) efter linien:
  $besked = str_replace("\n", "<BR>", $besked)
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:44 #12
ahhh... takker  hold on... dude! ;)
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:46 #13
så er det:
Parse error: parse error in c:\apache\htdocs\Database\index.php on line 27
Avatar billede jakoba Nybegynder
10. august 2002 - 17:51 #14
Det er nok fordi du har glemt $ foran dato_array  anden og tredie gang det står i linien.
Avatar billede mscodedk Nybegynder
10. august 2002 - 17:52 #15
ja...  TAKKER!!!! :)
Avatar billede jakoba Nybegynder
10. august 2002 - 17:53 #16
så er det vel et svar :)
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