Avatar billede elduce Nybegynder
01. januar 2004 - 23:47 Der er 7 kommentarer og
1 løsning

auto increment fra php

Halløj

Jeg har rodet med et mini-forum, og i den anledning har jeg et uniqueid-felt i databasen(mysql). Det er sat til auto_increment, men jeg synes ikke rigtig jeg kan få det til at fungere, når jeg skal tilføje et nyt indlæg. Hvis feltet er tomt ('' i sql-syntaxen) får jeg fejl i queryen, mens den går glat igennem hvis jeg f.eks. skriver '67'.
Det er 100% sikkert en lille detalje der skiller, men jeg kan sku ikke finde det nu...

Selve koden er her:
<?

if (!$beensubmitted)
{
print ("<form action=" . $_SERVER["PHP_SELF"] . "?page=addtext&fora=$fora&thread=$thread METHOD=post>");
print ("<textarea name=\"text\" rows=\"10\" cols=\"13\"></textarea>");
print ("<input type=hidden name=\"beensubmitted\" value=\"TRUE\">");
print ("<input type=submit name=submit value=\"Send Indlæg\">");
}
else
{
include ("db.php");

$sql = mysql_query ("INSERT into bulletin VALUES ('$fora', '$thread', '3', 'timestamp(10)', '0', '0', '', '1', '$text')", $Link);

print ("Indlægger er nu gemt. Tryk <a href=\"index.php?page=forum&fora_id=$fora&thread=$thread\">her</a> for at komme til forum");
}
?>

og et dump af databasen ses her:
CREATE TABLE bulletin (
  forumid tinyint(4) NOT NULL default '0',
  threadid tinyint(4) NOT NULL default '0',
  userid tinytext NOT NULL,
  time timestamp(10) NOT NULL,
  type tinyint(4) NOT NULL default '0',
  replyto tinyint(4) NOT NULL default '0',
  uniqueid tinyint(4) NOT NULL auto_increment,
  headline text NOT NULL,
  text longtext NOT NULL,
  PRIMARY KEY  (uniqueid),
  FULLTEXT KEY text (text)
) TYPE=MyISAM;

Jeg er stadig lidt grøn ud i alt det php-sjov, men det går da fremad, takket været bl.a. eksperten.dk :D
Avatar billede martinbk Nybegynder
01. januar 2004 - 23:49 #1
lad os antage du har en tabel med 2 felter
id = int, auto-increment
text = varchar(255)

syntaxen vil så være noget alla mysql_query("INSERT into tabel VALUES('', '$textstreng')");
Avatar billede martinbk Nybegynder
01. januar 2004 - 23:52 #2
en anden variant hvor du har lidt mere indflydelse på hvor hvad sættes ind (i f.eks. tilfælde af du ændre på din database struktur)

mysql_query("INSERT into tabel (text) VALUES ('$textstrng')");
Avatar billede elduce Nybegynder
01. januar 2004 - 23:53 #3
den første metode kører jeg med nu, og det er den jeg ikke kan få til at virke.

Jeg prøver lige med den anden metode...
Avatar billede elduce Nybegynder
02. januar 2004 - 00:01 #4
Det virkede... Den burde jeg nok selv kunne have fundet, men smid et svar, så du kan få dine point ;o)
Avatar billede martinbk Nybegynder
02. januar 2004 - 00:09 #5
smid et svar selv, og behold de 15, jeg hjalp jo entlig ikke rigtig med ret meget :)
Avatar billede elduce Nybegynder
02. januar 2004 - 00:13 #6
ok..
Avatar billede elduce Nybegynder
02. januar 2004 - 00:14 #7
nå, der var jeg lidt hurtig. Jeg håber ikke at det gør noget :D
Avatar billede Slettet bruger
02. januar 2004 - 07:30 #8
Du bør nok ikke bruge TINYINT helt så meget. Den kan som standard ikke håndtere værdier over 127. Brug en normal INT i stedet for.
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