Avatar billede nielsgron Nybegynder
05. maj 2001 - 21:47 Der er 34 kommentarer og
1 løsning

Forum i MySQL - DET VIRKER IKKE!!

Jeg har et problem. Jeg er ved at lave et forum, men jeg er løbet ind i et problem, når jeg skal oprette en ny debat.
På forsiden, har jeg lavet en simpel form, hvor man skal skrive title, navn og debatten(kaldet \"title,navn,besked\" i formlen).
Når man så trykker send, går den til en side, hvor det er meningen, at PHP skal:
1. Indsætte (title,navn,besked,id) i tabellen \"forum\".
2. oprette en tabel der skal hedde $id(altså det respektive id).
3. Indsætte (title,navn,besked,id i denne tabel) i $id.

Så har jeg lavet følgende:


<?
mysql_query(\"insert into forum (title, forfatter, besked)
values (\'$title\', \'$forfatter\', \'besked\')\")
or die(mysql_error());

mysql_query(\"SELECT title,forfatter,besked,id
FROM forum WHERE id LIKE \'$id\'\") or die(mysql_error());

mysql_query(\"create table $id(
id INT NOT NULL auto_increment,
title varchar(50),
navn varchar(50),
beskriv blob,
PRIMARY KEY(id))\")
or die(mysql_error());

mysql_query(\"insert into $id (title, forfatter, besked)
values (\'$title\', \'$forfatter\', \'$besked\')\")
or die(mysql_error());
?>


For mig, ser det rigtigt nok ud(men jeg er heller ikke så erfaren endnu :).
Men jeg får fejlmelddelsen(Hvis i ser nogle andre fejl, må i meget gerne sige til) :


You have an error in your SQL syntax near \'[]( id INT NOT NULL auto_increment, title varcha\' at line 1


HULK HULK

Hvad fanden gør jeg galt?
Avatar billede mortenfn Nybegynder
05. maj 2001 - 21:52 #1
id int(11) NOT NULL auto_increment,
Avatar billede mortenfn Nybegynder
05. maj 2001 - 21:57 #2
mysql_query(\"SELECT * FROM forum WHERE id = \'$id\'\");
Avatar billede mortenfn Nybegynder
05. maj 2001 - 21:58 #3
du har vel lavet en conect?
Avatar billede mortenfn Nybegynder
05. maj 2001 - 21:59 #4
jeg mener den her:

mysql_connect($sql_host,$sql_user,$sql_passwd)or die (mysql_error());
mysql_select_db($db)or die (mysql_error());
Avatar billede nielsgron Nybegynder
05. maj 2001 - 22:29 #5
1. Hvorfor har du sat (11) ind i det?
2. se\'følig :)
Avatar billede mortenfn Nybegynder
05. maj 2001 - 22:35 #6
mysql_query(\"create table \'$id\'(
Avatar billede mortenfn Nybegynder
05. maj 2001 - 22:41 #7
øøø - du har jeg lige testet scriptet og fundet hvorfor den fejler scriptet er godt nok fejlen opstår fordi $id er tom!!!
Avatar billede perla Nybegynder
05. maj 2001 - 22:42 #8
Jeg ville ikke lave tabeller hvis navn kun består af tal, kan nemt giv problemer. Kald dem Forum1, Forum2....

Kan også være det den brukker sig over

-Per
Avatar billede nielsgron Nybegynder
05. maj 2001 - 22:45 #9
>mortenfn: Øhh... hvad gør jeg så?

>perla: Jeg har også tænkt mig at gøre noget alla det, dette er bare en klade, som der bare skal bygges videre på.
Avatar billede perla Nybegynder
05. maj 2001 - 22:46 #10
men det kan være det aktuelle froblem!!
Avatar billede perla Nybegynder
05. maj 2001 - 22:48 #11
Hvilket script, hvor??
Avatar billede mortenfn Nybegynder
05. maj 2001 - 22:49 #12
mon ikke der er det her du vil ??? :

$result=mysql_query(\"SELECT id from forum where title=\'$title\' and forfatter=\'$forfatter\'
and besked=\'$besked\'\") or die(mysql_error());
$row=mysql_fetch_array($result);
$id=$row[id];
Avatar billede nielsgron Nybegynder
05. maj 2001 - 22:50 #13
Det tvivler jeg lidt på, da mortenfn jo lige har sagt at $id er tom, så det ville jo ikke hjælpe meget, vel :)
Avatar billede mortenfn Nybegynder
05. maj 2001 - 22:53 #14
i det ovenover finder du id for det du liga har indtastet
Avatar billede nielsgron Nybegynder
05. maj 2001 - 22:59 #15
Nu siger den:

Unknown column \'besked\' in \'where clause\'

???
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:01 #16
Jeg forstår forresten stadigvæk ikke hvorfor du har tilføjet (11)
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:02 #17
du mangler et $
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:03 #18
(11) er standart du behøver ikke skrive dem
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:05 #19
vær lige opmærksom på at du kalder ikke kolonnerne det samme et sted navn og i tabellen forfatter  - og beskriv og besked
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:10 #20
<?
mysql_query(\"insert into forum(title,navn,besked) values (\'$title\',\'$forfatter\',\'$besked\')\");

$result=mysql_query(\"SELECT id from forum where title=\'$title\' and navn=\'$forfatter\' and besked=\'$besked\'\");
$row=mysql_fetch_array($result);$id=$row[id];

mysql_query(\"create table $id(
id INT NOT NULL auto_increment,
title varchar(50),
navn varchar(50),
besked blob,
PRIMARY KEY(id))\")
or die(mysql_error());

mysql_query(\"insert into $id (title, navn, besked)
values (\'$title\', \'$forfatter\', \'$besked\')\");
?>
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:11 #21
HULK HULK
Jeg bliver mere og mere forvirret.
Er du ikke sød, og sætte det ind i scriptet ovenover? Det ville hjælpe mig en del.
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:12 #22
Øhh undskyld, det nåede du lige at gøre hva\' :)
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:13 #23
yep ;0) - jeg tænkte det nok var ved at blive lige nok kludret
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:17 #24
Den bliver ved med at brokke sig. Nu si\'r den:

Warning: Supplied argument is not a valid MySQL result resource in c:\\apache\\htdocs/mit_forum/opret_forum.php on line 57
You have an error in your SQL syntax near \'( id INT NOT NULL auto_increment, title varcha\' at line 1

Line 57 er denne:

$row=mysql_fetch_array($result);
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:20 #25
er der noget i tabellen
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:22 #26
Nej. Det er når jeg lavet en ny debat, den skriver det!
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:23 #27
værdierne \'$title\',\'$forfatter\',\'$besked\' er sat når du kører scriptet
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:26 #28
Jep. Jeg har lavet en ganske simpel form, der hedder som følger:

<form name=\"opret_forum\" method=\"post\" action=\"opret_forum.php\">
  Title:
<input type=\"text\" name=\"title\">
  <br>
  Navn:
  <input type=\"text\" name=\"navn\">
  <br>
  Besked:
  <input type=\"text\" name=\"besked\">
  <br>
  <input type=\"reset\" name=\"Reset\" value=\"Forfra\">
  <input type=\"submit\" name=\"Submit\" value=\"Send\">
</form>
Avatar billede nielsgron Nybegynder
05. maj 2001 - 23:28 #29
Forresten så behøver du ikke svare så hurtigt igen, da jeg nu forlader huset, så jeg kan ikke skrive tilbage før i morgen. - men foreløbig tak for hjælpen. Vi skrives vel ved i morgen.
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:34 #30
tabellen \"forum\" eksisterer den fejlen er som før at select ikke giver et resultat
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:35 #31
scriptet virker her hos mig
Avatar billede mortenfn Nybegynder
05. maj 2001 - 23:49 #32
så du så er den der og nu er den testet

$title=\"test\";
$forfatter=\"moretn\";
$besked=\"bla bla\";

mysql_query(\"insert into forum(title,navn,besked) values (\'$title\',\'$forfatter\',\'$besked\')\")or die (mysql_error());

$result=mysql_query(\"SELECT id from forumwhere title=\'$title\' and navn=\'$forfatter\' and besked=\'$besked\'\")or die (mysql_error());
while($row=mysql_fetch_array($result)){
$table=\"t$row[id]\";}

mysql_query(\"create table $table(
id INT NOT NULL auto_increment,
title varchar(50),
navn varchar(50),
besked blob,
PRIMARY KEY(id))\")
or die(mysql_error());

mysql_query(\"insert into $table (title, navn, besked)
values (\'$title\', \'$forfatter\', \'$besked\')\");
?>
Avatar billede mortenfn Nybegynder
06. maj 2001 - 00:01 #33
alle fejlene er opstået fordi:

I din form skriver du navn
  <input type=\"text\" name=\"navn\">

og i forbindelse med basen skriver du forfatter
values (\'$title\', \'$forfatter\', \'$besked\')\")

den går ikke - de skal jo hedde det samme

 
Avatar billede mwittrock Nybegynder
06. maj 2001 - 09:37 #34
Et helt andet spørgsmål er, om det er en god ide at oprette en tabel pr. debat, når datamodellen for et forum kan gøres ekstremt simpel. At oprette en tabel pr. debat vil gøre din database meget mere uoverskuelig end den behøver være, udover at der nødvendigvis må være et performance spørgsmål også.
Avatar billede nielsgron Nybegynder
06. maj 2001 - 18:34 #35
Jubiiiiii.
Nu virker det!
Tak!
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