Avatar billede circles Nybegynder
10. februar 2002 - 22:01 Der er 31 kommentarer og
3 løsninger

Er der fejl?

Er der fejl i denne kode?

<form action="" method="post">
Navn;<input type=text name="navn">
Email:<input type=text name="email">
Besked;<input type=text name="besked">
<input type="submit" value="send" name="insertSQL">
</form>
<?php
$conn = mysql_connect("localhost");
mysql_select_db("gæstebog");
$tabel = "gbog";
$navn = "$navn";
$email = "$email";
$besked = "$text";
if($insertSQL){
mysql_query("insert into $tabel set navn='$navn', email='$email', besked=$besked");
}
$resultat = mysql_query("select navn, email, besked from Gbog");

while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  mysql_close();

}


?>
Avatar billede Slettet bruger
10. februar 2002 - 22:05 #1
ja....du skal have nogle plinger ' udenom $besked i din insert...og en anden gang kan du vel poste fejlmeddelelsen så det er nemmere at opdage.
Avatar billede Slettet bruger
10. februar 2002 - 22:06 #2
nåhja...du skriver

$tabel = "gbog";

men kalder den Gbog et andet sted. Der _ER_ forskel på små og store bogstaver.
Avatar billede snigermunken Nybegynder
10. februar 2002 - 22:08 #3
$navn = "$navn"; den får du da ikke meget ud af.
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:10 #4
Det er nu også fordi INSERT syntaksen er skrupforkert:

mysql_query("insert into $tabel (navn,email,besked) values ('$navn','$email','$besked')");
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:11 #5
og
  $besked = "$text";
skulle have været
  $besked = "$besked";
men kan li'som den med navn og email undværes helt, da det
er overflødigt
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:13 #6
Og så er det ikke nok at sige
  extract($raekke);
det giver dig kun nogle variabler. Tilføj:

  print "$navn $email  $besked<br>";

så du kan se om der er noget i tabellen.
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:14 #7
Ups, og det bliver ved. Din
  mysql_close();
skal udenfor din while-løkke
Avatar billede circles Nybegynder
10. februar 2002 - 22:26 #8
Nu ser min kode sådan ud
er der mere at bemærke for når jeg prøver at sende sider den bare 0 0 0!
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<form action="" method="post">
Navn;<input type=text name="navn">
Email:<input type=text name="email">
Besked;<input type=text name="besked">
<input type="submit" value="send" name="insertSQL">
</form>
<?php
$conn = mysql_connect("localhost");
mysql_select_db("gæstebog");
$tabel = "gbog";
$navn = "$navn";
$email = "$email";
$besked = "$besked";
if($insertSQL){
mysql_query("insert into $tabel (navn,email,besked) values ('$navn','$email','$besked')");
}
$resultat = mysql_query("select navn, email, besked from gbog");

while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  print "$navn $email  $besked<br>";
 

}
mysql_close();

?>
Avatar billede circles Nybegynder
10. februar 2002 - 22:27 #9
Nå man kan vel heller ikke forvente meget af mig jeg begynte først at programere i php i går aftes!
Avatar billede morpheus Nybegynder
10. februar 2002 - 22:28 #10
mangler du ikke noget i action ???

<form action="??????????????.fil" method="post">
Avatar billede circles Nybegynder
10. februar 2002 - 22:29 #11
Behøves man det når det er den samme fil?
Avatar billede circles Nybegynder
10. februar 2002 - 22:30 #12
Den sender vist godt nok men det den sender er 0 0 og 0!
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:41 #13
Hvad type har du defineret navn,email og besked til i databasen?
Er det tal? Prøv char(100) i stedet for.
Avatar billede circles Nybegynder
10. februar 2002 - 22:47 #14
Ja, tak det virkede! Kan man ikke slette data via php og hvordan?
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 22:51 #15
delete from dintabel where navn='Anders Fogh'
Avatar billede circles Nybegynder
10. februar 2002 - 23:10 #16
Hvis man gerne vil lave en der hedder id hvilken datatype skal man så vælge? jeg har slået auto increment til i id!
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 23:19 #17
en id bør være en INT(11)
Avatar billede circles Nybegynder
10. februar 2002 - 23:21 #18
Så siger den
CREATE TABLE gbog (email CHAR (100)  not null , besked CHAR (100)  not null , navn CHAR (100)  not null , id INT (11)  not null AUTO_INCREMENT )
MySQL returnerede: Incorrect table definition; There can only be one auto column and it must be defined as a key
Tilbage
Avatar billede erikjacobsen Ekspert
10. februar 2002 - 23:46 #19
Du har ikke sagt at den skal være primary key. Og det skal den,
ellers bliver den så ked af det.
Avatar billede circles Nybegynder
11. februar 2002 - 09:52 #20
TAK! erik!
Avatar billede circles Nybegynder
11. februar 2002 - 11:18 #21
Her er der lidt kode til dig erik, håber du vil få den til at virke.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<form action="tjek.php" method="post">
Navn;<input type=text name="navn">
Email:<input type=text name="email">
icq:<input type=text name="icq">
url:<input type=text name="url">
Besked;<input type=text name="besked">
<input type="submit" value="send" name="insertSQL">
</form>
<?php
function LinkIt($tekst) {
  $tekst = eregi_replace("((f|ht){1}tp://[a-z0-9@:%_.~#-\?&]+)", "<a href=\"\\1\">\\1</a>", $tekst);
  return eregi_replace("([a-z0-9._-]+@[a-z0-9._-]+\.[a-z0-9._-]+)","<a href=\"mailto:\\1\">\\1</a>",$tekst);
}


$conn = mysql_connect("localhost");
mysql_select_db("gæstebog");
$tabel = "gbog";
$navn = "$navn";
$email = "$email";
$icq = "$icq"; 
$url = "$url";
$besked = "$besked";
$ip = "$REMOTE_ADDR";
if($insertSQL){
mysql_query("insert into $tabel (navn,email,icq,url,besked,ip) values ('$navn','$email','$icq','$url','$besked','$ip')");
}
$resultat = mysql_query("select emne, url, icq, navn, email, dato, tid, ip, besked from gbog order by ID desc");

while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  print "<br>$emne<br>ip<br>$Url<br>$icq<br>$navn<br>$email<br>$besked<br>$dato<br>$tid<br>";
 

}
mysql_close();

?>
Avatar billede circles Nybegynder
11. februar 2002 - 11:18 #22
Når jeg prøver at køre den siger den:
"Warning: Supplied argument is not a valid MySQL result resource in c:\phpdev\www\public\login\tjek.php on line 31"
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 11:28 #23
Så er der nok en syntaksfejl eller lignende i SQL-en. Du kan finde
du af det ved at skrive

mysql_query("insert ...") or die(mysql_error());

og

$resultat = mysql_query("select ...") or die(mysql_error());

Når du får det at vide, kan du enten se det selv, eller spørge
os til råds.

Kan man virkelig have en database med "æ" i navnet ?!
Avatar billede circles Nybegynder
11. februar 2002 - 12:56 #24
Vil du ikke godt sætte det ind for mig Jeg er jo totalt nybegynder!
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 13:04 #25
Nej, det har jeg da forklaret tydeligt nok. Du har 2 sætninger
med mysql_query

Bag ved begge skriver du som jeg anførte. Du skal ikke lade
dig forvirre af de 3 punktummer - jeg gad bare ikke skrive dine
SQL-sætninger.
Avatar billede circles Nybegynder
11. februar 2002 - 13:15 #26
Her har vi synderen!
You have an error in your SQL syntax near '..' at line 1

Hvad gør jeg?
Avatar billede circles Nybegynder
11. februar 2002 - 13:19 #27
Her er fejlen vist hvordan retter jeg den?
You have an error in your SQL syntax near 'from gbog order by ID desc' at line 1
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 13:36 #28
Der kan da ikke være fejl lige der. Kan du vise mig hele linien?
Avatar billede circles Nybegynder
11. februar 2002 - 15:22 #29
Nu ved jeg ikke lige hvilken linie du snakker om, men her er hele php koden:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<form action="tjek.php" method="post">
Navn;<input type=text name="navn">
Email:<input type=text name="email">
icq:<input type=text name="icq">
url:<input type=text name="url">
Besked;<input type=text name="besked">
<input type="submit" value="send" name="insertSQL">
</form>
<?php
function LinkIt($tekst) {
  $tekst = eregi_replace("((f|ht){1}tp://[a-z0-9@:%_.~#-\?&]+)", "<a href=\"\\1\">\\1</a>", $tekst);
  return eregi_replace("([a-z0-9._-]+@[a-z0-9._-]+\.[a-z0-9._-]+)","<a href=\"mailto:\\1\">\\1</a>",$tekst);
}


$conn = mysql_connect("localhost");
mysql_select_db("gæstebog");
$tabel = "gbog";
$navn = "$navn";
$email = "$email";
$icq = "$icq"; 
$url = "$url";
$besked = "$besked";
$ip = "$REMOTE_ADDR";
if($insertSQL){
mysql_query("insert into $tabel (navn,email,icq,url,besked,ip) values ('$navn','$email','$icq','$url','$besked','$ip')")or die(mysql_error());;
}
$resultat = mysql_query("select emne, url, icq, navn, email, dato, tid, ip, besked, from gbog order by ID desc")or die(mysql_error());;
while ($raekke = mysql_fetch_array($resultat)) {
  extract($raekke);
  print "<br>$emne<br>ip<br>$Url<br>$icq<br>$navn<br>$email<br>$besked<br>$dato<br>$tid<br>";
 

}
mysql_close();

?>
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 15:29 #30
Du må ikke have komma efter det sidste felt:

  besked,

og det har du heller ikke haft før.
Avatar billede circles Nybegynder
11. februar 2002 - 15:40 #31
Så står der: Unknown column 'besked' in 'field list'
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 15:44 #32
Så er det jo nok fordi du ikke har et felt, der hedder besked
i din tabel, gbog.
Avatar billede circles Nybegynder
11. februar 2002 - 15:58 #33
Ved hvordan man laver sådan noget som tiden og daton brugeren har skrevet beskeden i gæstebogen og brugerens ip?
Avatar billede erikjacobsen Ekspert
11. februar 2002 - 17:10 #34
Mnjah, man aflæser fx tiden med PHP. Prøv www.php.net/date
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