PDA

View Full Version : [release] hack for global.php to makeforumjump jump faster !


09-06-2000, 03:07 PM
Let us know what you think ...

Replace the makeforumjump section in global.php with this
hold your breath and pray ! (it joins 2 sql queries into one - we've got it running on forums.gameplay.com ;-) )

also downloadable from http://forums.gameplay.com/global_hack_pt1.html
(err yes there is at least another one on it's way ...)

fodder


// ###################### Start makeforumjump #######################
function makeforumjump ()
{
// this generates the jump to box
global $DB_site, $forumid, $optionselected, $usecategories, $jumpforumid, $jumpforumtitle, $jumpforumbits, $curforumid;
global $hideprivateforums, $defaultselected, $forumjump, $bbuserid, $bbusergroupid;

if ($forumid != "")
{
$curforumid = $forumid;
}
else
{
if ($threadid != "")
{
$getforumid = $DB_site->query_first ("SELECT forumid FROM thread WHERE threadid=$threadid");
$curforumid = $getforumid["forumid"];
}
}

$categorys = $DB_site->query ("SELECT category.categoryid, category.title as ctitle, category.displayorder , forum.forumid, forum.title as ftitle, forum.displayorder FROM category,forum WHERE forum.categoryid=category.categoryid AND forum.displayorder <>0 and category.displayorder<>0 and forum.active=1 order by category.displayorder, forum.displayorder");

$this_cat=0;
$old_categoryid=0;
$old_ctitle="";

while ($category = $DB_site->fetch_array ($categorys))
{
$forum=$category;

if ( $this_cat != $category["categoryid"] )
{
if ($this_cat >0)
{
if ($usecategories == 1 and $forumshown == 1)
{
$jumpforumid = "";
$jumpforumtitle = "";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

if ($curforumid == "cat$old_categoryid")
{
$optionselected = "selected";
} $jumpforumid = "cat$old_categoryid";
$jumpforumtitle = "Category: $old_ctitle";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

$optionselected = "";

$jumpforumid = "";
$jumpforumtitle = "--------------------";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
}
// add forum bits
$jumpforumbits.= $tempjumpforumbits;
}

$optionselected = "";
$forumshown = 0;
$tempjumpforumbits = "";
$this_cat = $category["categoryid"];
$old_categoryid = $this_cat;
$old_ctitle=$category["ctitle"];
}

if ($hideprivateforums == 1)
{
$getperms = getpermissions ($bbuserid, $bbusergroupid, $forum["forumid"]);
}
else
{
$getperms["canview"] = 1;
}

if ($getperms["canview"] == 1)
{
$forumshown = 1;

$jumpforumid = $forum["forumid"];
$jumpforumtitle = " " . $forum["ftitle"];
else
{
$optionselected = "";
}
eval ("\$tempjumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
} // end if $getperms...
}


if ($usecategories == 1 and $forumshown == 1)
{
$jumpforumid = "";
$jumpforumtitle = "";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

//if ($curforumid == "cat".$category["categoryid"])
if ($curforumid == "cat$old_categoryid")
{
$optionselected = "selected";
}
// $jumpforumid = "cat" . $category["categoryid"];
$jumpforumid = "cat$old_categoryid";
// $jumpforumtitle = "Category: " . $category["ctitle"];
$jumpforumtitle = "Category: $old_ctitle";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

$optionselected = "";

$jumpforumid = "";
$jumpforumtitle = "--------------------";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
}
// add forum bits
$jumpforumbits.= $tempjumpforumbits;


if ($selectedone != 1)
{
$defaultselected = "selected";
}
eval ("\$forumjump = \"".gettemplate ("forumjump")."\";");
}

if ($curforumid == $jumpforumid)
{
$optionselected = "selected";
$selectedone = 1;
}

09-06-2000, 03:53 PM
fodder has this hack and the showthread hack helped your forum speed?

09-06-2000, 04:01 PM
Seems to.

The main thrill about is is that it reduces the load on the database server.

We have about 1.1 million posts these days so anything that makes our db server's life easier
is very welcome !

in summary what it does is compress the category select in with the forum select so that
you are only doing one sql query rather than 1+ number of forums in your db ..

It helps a bit

The next hack ( coming in about 10 mins ) also does help the db loading.

If you want to see the difference tell mysql to do logging tail the log and
compare the two.

The next hack makes that test look very very very very scary indeed :)

fodder

09-06-2000, 04:26 PM
There are a couple errors in your code involving extra and missing brackets so I wonder how you are running it. Here is a "fixed" version as in it seems to work


// ###################### Start makeforumjump #######################
function makeforumjump ()
{
// this generates the jump to box
global $DB_site, $forumid, $optionselected, $usecategories, $jumpforumid, $jumpforumtitle, $jumpforumbits, $curforumid;
global $hideprivateforums, $defaultselected, $forumjump, $bbuserid, $bbusergroupid;

if ($forumid != "")
{ $curforumid = $forumid; }
else
{ if ($threadid != "")
{
$getforumid = $DB_site->query_first ("SELECT forumid FROM thread WHERE threadid=$threadid");
$curforumid = $getforumid["forumid"];
}
}

$categorys = $DB_site->query ("SELECT category.categoryid, category.title as ctitle, category.displayorder , forum.forumid, forum.title as ftitle, forum.displayorder FROM category,forum WHERE forum.categoryid=category.categoryid AND forum.displayorder <>0 and category.displayorder<>0 and forum.active=1 order by category.displayorder, forum.displayorder");
$this_cat=0;
$old_categoryid=0;
$old_ctitle="";

while ($category = $DB_site->fetch_array ($categorys))
{
$forum=$category;

if ( $this_cat != $category["categoryid"] )
{
if ($this_cat >0)
{
if ($usecategories == 1 and $forumshown == 1)
{
$jumpforumid = "";
$jumpforumtitle = "";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

if ($curforumid == "cat$old_categoryid")
{ $optionselected = "selected"; }
$jumpforumid = "cat$old_categoryid";
$jumpforumtitle = "Category: $old_ctitle";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
$optionselected = "";
$jumpforumid = "";
$jumpforumtitle = "--------------------";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
}
// add forum bits
$jumpforumbits.= $tempjumpforumbits;
}

$optionselected = "";
$forumshown = 0;
$tempjumpforumbits = "";
$this_cat = $category["categoryid"];
$old_categoryid = $this_cat;
$old_ctitle=$category["ctitle"];
}
if ($hideprivateforums == 1)
{ $getperms = getpermissions ($bbuserid, $bbusergroupid, $forum["forumid"]); }
else
{ $getperms["canview"] = 1; }

if ($getperms["canview"] == 1)
{
$forumshown = 1;
$jumpforumid = $forum["forumid"];
$jumpforumtitle = " " . $forum["ftitle"];
}
else
{ $optionselected = ""; }
eval ("\$tempjumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
} // end if $getperms...

if ($usecategories == 1 and $forumshown == 1)
{
$jumpforumid = "";
$jumpforumtitle = "";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");

//if ($curforumid == "cat".$category["categoryid"])
if ($curforumid == "cat$old_categoryid")
{ $optionselected = "selected"; }
// $jumpforumid = "cat" . $category["categoryid"];
$jumpforumid = "cat$old_categoryid";
// $jumpforumtitle = "Category: " . $category["ctitle"];
$jumpforumtitle = "Category: $old_ctitle";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
$optionselected = "";
$jumpforumid = "";
$jumpforumtitle = "--------------------";
eval ("\$jumpforumbits .= \"".gettemplate ("jumpforumbit")."\";");
}

// add forum bits
$jumpforumbits.= $tempjumpforumbits;

if ($selectedone != 1)
{ $defaultselected = "selected"; }
eval ("\$forumjump = \"".gettemplate ("forumjump")."\";");

if ($curforumid == $jumpforumid)
{
$optionselected = "selected";
$selectedone = 1;
}
}

09-06-2000, 04:33 PM
which bits did you change ?
my eyes are going !

it might have been the cut and paste
is the web page one better ?

fodder

09-06-2000, 04:33 PM
Also what is the point of this code which comes at the end of the function, is not returned from the function and occurs after all templates are set. I can see it hopes to set the combobox to display the current forum but has little hope of working coming after the template. This code needs to be checked over closely before being installed. IMHO


if ($curforumid == $jumpforumid)
{
$optionselected = "selected";
$selectedone = 1;
}

09-06-2000, 04:36 PM
I gave up waiting on your web page version to load but I just looked at it and it is different than your pasted one!

Originally posted by fodder
which bits did you change ?
my eyes are going !

it might have been the cut and paste
is the web page one better ?

fodder

09-06-2000, 04:39 PM
It might be my eyes but I think that that comes just before
an eval statement ...?

Fodder

09-06-2000, 04:40 PM
Look at the end of the code you pasted - it comes after the eval and also notice you don't close the function off with a }

09-06-2000, 04:42 PM
Like I said the cut and paste may have gone wrong

Try the downloadable version from the URL given

http://forums.gameplay.com/global_hack_pt1.html

That has a greater chance of being right ...

Fodder

09-06-2000, 04:46 PM
What is the next hack?

This hack looks promising. Is it bug free?

09-06-2000, 04:51 PM
Well I think it's bug free B-) but ... :)

The other hack is in the thread titled
"[release] hack pt 2 for global.php - makes the smilie look up "

Have a read of it and let us know there !!!

It makes your db's life easier as well

Fodder

09-06-2000, 04:59 PM
Fodder Question:
What does your system run on? What are your servers specs and OS?

I just bought a server. It has:
Dual PIII 850's
1.5 GB of RAM
5 Ultra 2 36.4 GB Hard Drives
Raid 5
Using Slackware

Are you using MySQL as your DB. I spoke to a user thatported VB for Sybase. They said it was fast.

See I am having some problems runing my MySQL DB on my curretn server of:
Dual PIII 450's
712 MB of Ram
2 Ultra 2 36.4 Hard Drives
Running FreeBSD

The MySQL load jumps tremendously.

Can you post your MySQL variables and settings. I would be very grateful. Thanks for your time. :)

09-07-2000, 07:50 AM
When it's going fast i'll let you know !

Seriously though I suggest this ...

If you have put in my index additions ( only do this if you have alot of RAM and a big forum)
then you need to set your key buffer to be about 10MB
bigger than the total file size of your *MYI files
( yes these are mine :) )

390800568 Sep 7 09:40 post.MYD
63578112 Sep 7 09:40 post.MYI
8930 Aug 23 15:10 post.frm

Make sure you have enough RAM to hold the whole of your
files in ram plus your max_connections * all the memory
used per thread. check your sort buffer, join buffer etc

That should then hopefully make it go faster !

Also try both of my hacks - this one and http://forums.gameplay.com/global_hack_pt2.html
will make your db machine happier

in peak load try watching
/usr/bin/vmstat 1

This will let you know if you are swapping like mad. Also
watch top to see whats going on !

Your new machine will help ! Donate the old one to being a web server :)

Oh and yes i'm using MySQL.

Fodder

09-07-2000, 08:31 AM
Where can I find them?

09-07-2000, 01:41 PM
This is (i think) my latest version of the database - i'll update it if not

http://forums.gameplay.com/my_forums_database_def.html

Have a look at it and see how it compares to you
( do mysqldump -d <insert name of forum db here)

This will dump you out a similar listing ...

Where i've got a key that you havn't you need to do something like
mysql> alter table <table> add index <column name> (<column name>)

If you have ones that I don't post 'em here however if they are the
two in one things then you need to remove them as MySQL can't
use them all the time ...

mysql> alter table <table> drop index <index name>

Fodder

09-07-2000, 02:50 PM
Here is mysql dump for my DB

Please tell me what you think?

How do I make the changes in phpMyAdmin to your indexes?


# MySQL dump 6.0
#
# Host: localhost Database: pbcforums2
#--------------------------------------------------------
# Server version 3.23.22-beta

#
# Table structure for table 'announcement'
#
CREATE TABLE announcement (
announcementid smallint(5) unsigned NOT NULL auto_increment,
title varchar(50) DEFAULT '' NOT NULL,
userid smallint(5) unsigned DEFAULT '0' NOT NULL,
startdate int(10) unsigned DEFAULT '0' NOT NULL,
enddate int(10) unsigned DEFAULT '0' NOT NULL,
pagetext mediumtext DEFAULT '' NOT NULL,
forumid smallint(6) DEFAULT '0' NOT NULL,
PRIMARY KEY (announcementid)
);

#
# Table structure for table 'bbcode'
#
CREATE TABLE bbcode (
bbcodeid smallint(5) unsigned NOT NULL auto_increment,
findcode text DEFAULT '' NOT NULL,
replacecode text DEFAULT '' NOT NULL,
PRIMARY KEY (bbcodeid)
);

#
# Table structure for table 'category'
#
CREATE TABLE category (
categoryid smallint(5) unsigned NOT NULL auto_increment,
title char(100) DEFAULT '' NOT NULL,
displayorder smallint(6) DEFAULT '0' NOT NULL,
PRIMARY KEY (categoryid)
);

#
# Table structure for table 'custom_avatar'
#
CREATE TABLE custom_avatar (
id int(6) NOT NULL auto_increment,
bin_data longblob DEFAULT '' NOT NULL,
filename varchar(50) DEFAULT '' NOT NULL,
filesize varchar(50) DEFAULT '' NOT NULL,
filetype varchar(50) DEFAULT '' NOT NULL,
userid int(10) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
UNIQUE userid (userid)
);

#
# Table structure for table 'forum'
#
CREATE TABLE forum (
forumid smallint(5) unsigned NOT NULL auto_increment,
title char(100) DEFAULT '' NOT NULL,
description char(250) DEFAULT '' NOT NULL,
active smallint(6) DEFAULT '0' NOT NULL,
displayorder smallint(6) DEFAULT '0' NOT NULL,
replycount int(10) unsigned DEFAULT '0' NOT NULL,
lastpost int(11) DEFAULT '0' NOT NULL,
lastposter char(50) DEFAULT '' NOT NULL,
threadcount mediumint(8) unsigned DEFAULT '0' NOT NULL,
categoryid smallint(5) unsigned DEFAULT '0' NOT NULL,
allowposting smallint(6) DEFAULT '0' NOT NULL,
daysprune smallint(5) unsigned DEFAULT '0' NOT NULL,
forumtemplate char(100) DEFAULT '' NOT NULL,
headertemplate char(100) DEFAULT '' NOT NULL,
useadvheader smallint(6) DEFAULT '0' NOT NULL,
footertemplate char(100) DEFAULT '' NOT NULL,
useadvfooter smallint(6) DEFAULT '0' NOT NULL,
forumbittemplate char(100) DEFAULT '' NOT NULL,
threadtemplate char(100) DEFAULT '' NOT NULL,
threadbittemplate char(100) DEFAULT '' NOT NULL,
replytemplate char(100) DEFAULT '' NOT NULL,
newthreadtemplate char(100) DEFAULT '' NOT NULL,
edittemplate char(100) DEFAULT '' NOT NULL,
rulestemplate char(100) DEFAULT '' NOT NULL,
titleimage char(100) DEFAULT '' NOT NULL,
replyimage char(100) DEFAULT '' NOT NULL,
newthreadimage char(100) DEFAULT '' NOT NULL,
closedthreadimage char(100) DEFAULT '' NOT NULL,
newpostemail char(250) DEFAULT '' NOT NULL,
newthreademail char(250) DEFAULT '' NOT NULL,
moderatenew smallint(6) DEFAULT '0' NOT NULL,
allowbbcode smallint(6) DEFAULT '0' NOT NULL,
allowimages smallint(6) DEFAULT '0' NOT NULL,
allowhtml smallint(6) DEFAULT '0' NOT NULL,
allowsmilies smallint(6) DEFAULT '0' NOT NULL,
PRIMARY KEY (forumid),
KEY displayorder (displayorder)
);

#
# Table structure for table 'forumpermission'
#
CREATE TABLE forumpermission (
forumpermissionid smallint(5) unsigned NOT NULL auto_increment,
forumid smallint(5) unsigned DEFAULT '0' NOT NULL,
usergroupid smallint(5) unsigned DEFAULT '0' NOT NULL,
canview smallint(6) DEFAULT '0' NOT NULL,
cansearch smallint(6) DEFAULT '0' NOT NULL,
canemail smallint(6) DEFAULT '0' NOT NULL,
canpostnew smallint(6) DEFAULT '0' NOT NULL,
canreply smallint(6) DEFAULT '0' NOT NULL,
canadminedit smallint(6) DEFAULT '0' NOT NULL,
canedit smallint(6) DEFAULT '0' NOT NULL,
candelete smallint(6) DEFAULT '0' NOT NULL,
canopenclose smallint(6) DEFAULT '0' NOT NULL,
canmove smallint(6) DEFAULT '0' NOT NULL,
PRIMARY KEY (forumpermissionid),
KEY forumid (forumid)
);

#
# Table structure for table 'icon'
#
CREATE TABLE icon (
iconid smallint(5) unsigned NOT NULL auto_increment,
title char(100) DEFAULT '' NOT NULL,
iconpath char(100) DEFAULT '' NOT NULL,
PRIMARY KEY (iconid)
);

#
# Table structure for table 'pmstats'
#
CREATE TABLE pmstats (
id mediumint(8) unsigned NOT NULL auto_increment,
toid smallint(5) unsigned DEFAULT '0' NOT NULL,
fromid smallint(5) unsigned DEFAULT '0' NOT NULL,
datetime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);

#
# Table structure for table 'poll'
#
CREATE TABLE poll (
pollid mediumint(8) unsigned NOT NULL auto_increment,
question varchar(100),
options text,
active smallint(6) DEFAULT '1',
PRIMARY KEY (pollid)
);

#
# Table structure for table 'pollvote'
#
CREATE TABLE pollvote (
pollvoteid mediumint(8) unsigned NOT NULL auto_increment,
pollid mediumint(8) unsigned,
userid int(10) unsigned DEFAULT '0',
votedate int(11) unsigned,
voteoption int(2) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (pollvoteid)
);

#
# Table structure for table 'post'
#
CREATE TABLE post (
postid int(10) unsigned NOT NULL auto_increment,
threadid int(10) unsigned DEFAULT '0' NOT NULL,
username varchar(50) DEFAULT '' NOT NULL,
userid int(10) unsigned DEFAULT '0' NOT NULL,
title varchar(100) DEFAULT '' NOT NULL,
dateline int(11) DEFAULT '0' NOT NULL,
pagetext mediumtext,
allowsmilie smallint(6) DEFAULT '0' NOT NULL,
email smallint(6) DEFAULT '0' NOT NULL,
signature smallint(6) DEFAULT '0' NOT NULL,
ipaddress varchar(16) DEFAULT '' NOT NULL,
iconid smallint(5) unsigned DEFAULT '0' NOT NULL,
visible smallint(6) DEFAULT '0' NOT NULL,
pollid mediumint(8) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (postid),
KEY threadid (threadid),
KEY username (username),
KEY userid (userid),
KEY dateline (dateline)
);

#
# Table structure for table 'privatercvd'
#
CREATE TABLE privatercvd (
msgid mediumint(8) unsigned NOT NULL auto_increment,
toid smallint(5) unsigned DEFAULT '0' NOT NULL,
fromid smallint(5) unsigned DEFAULT '0' NOT NULL,
title varchar(100) DEFAULT '' NOT NULL,
text mediumtext DEFAULT '' NOT NULL,
datetime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
signature tinyint(4) DEFAULT '0' NOT NULL,
iconid smallint(5) DEFAULT '0' NOT NULL,
repliedto tinyint(4) DEFAULT '0' NOT NULL,
folder tinyint(4) DEFAULT '0' NOT NULL,
PRIMARY KEY (msgid)
);

#
# Table structure for table 'privatesent'
#
CREATE TABLE privatesent (
msgid mediumint(8) unsigned NOT NULL auto_increment,
toid smallint(5) unsigned DEFAULT '0' NOT NULL,
fromid smallint(5) unsigned DEFAULT '0' NOT NULL,
title varchar(100) DEFAULT '' NOT NULL,
text mediumtext DEFAULT '' NOT NULL,
datetime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
signature tinyint(4) DEFAULT '0' NOT NULL,
iconid smallint(5) DEFAULT '0' NOT NULL,
PRIMARY KEY (msgid)
);

#
# Table structure for table 'replacement'
#
CREATE TABLE replacement (
replacementid smallint(5) unsigned NOT NULL auto_increment,
findword text DEFAULT '' NOT NULL,
replaceword text DEFAULT '' NOT NULL,
PRIMARY KEY (replacementid)
);

#
# Table structure for table 'session'
#
CREATE TABLE session (
sessionid mediumint(8) unsigned NOT NULL auto_increment,
userid smallint(5) unsigned DEFAULT '0' NOT NULL,
ipaddress char(20) DEFAULT '' NOT NULL,
lastactivity int(10) unsigned DEFAULT '0' NOT NULL,
location char(250) DEFAULT '' NOT NULL,
PRIMARY KEY (sessionid),
KEY userid (userid),
KEY location (location)
);

#
# Table structure for table 'smilie'
#
CREATE TABLE smilie (
smilieid smallint(5) unsigned NOT NULL auto_increment,
title char(100) DEFAULT '' NOT NULL,
smilietext char(10) DEFAULT '' NOT NULL,
smiliepath char(100) DEFAULT '' NOT NULL,
PRIMARY KEY (smilieid)
);

#
# Table structure for table 'template'
#
CREATE TABLE template (
templateid smallint(5) unsigned NOT NULL auto_increment,
title varchar(100) DEFAULT '' NOT NULL,
template mediumtext DEFAULT '' NOT NULL,
PRIMARY KEY (templateid)
);

#
# Table structure for table 'thread'
#
CREATE TABLE thread (
threadid int(10) unsigned NOT NULL auto_increment,
title varchar(100) DEFAULT '' NOT NULL,
lastpost int(10) unsigned DEFAULT '0' NOT NULL,
forumid smallint(5) unsigned DEFAULT '0' NOT NULL,
open smallint(6) DEFAULT '0' NOT NULL,
replycount int(10) unsigned DEFAULT '0' NOT NULL,
postusername varchar(50) DEFAULT '' NOT NULL,
lastposter varchar(50) DEFAULT '' NOT NULL,
dateline int(10) unsigned DEFAULT '0' NOT NULL,
views smallint(5) unsigned DEFAULT '0' NOT NULL,
iconid smallint(5) unsigned DEFAULT '0' NOT NULL,
notes varchar(250) DEFAULT '' NOT NULL,
visible smallint(6) DEFAULT '0' NOT NULL,
subjectindex varchar(100) DEFAULT '' NOT NULL,
threadindex mediumtext DEFAULT '' NOT NULL,
userindex mediumtext DEFAULT '' NOT NULL,
PRIMARY KEY (threadid),
KEY lastpost (lastpost),
KEY forumid (forumid)
);

#
# Table structure for table 'user'
#
CREATE TABLE user (
userid int(10) unsigned NOT NULL auto_increment,
usergroupid smallint(5) unsigned DEFAULT '0' NOT NULL,
username varchar(50) DEFAULT '' NOT NULL,
password varchar(50) DEFAULT '' NOT NULL,
email varchar(50) DEFAULT '' NOT NULL,
parentemail varchar(50) DEFAULT '' NOT NULL,
coppauser smallint(6) DEFAULT '0' NOT NULL,
homepage varchar(100) DEFAULT '' NOT NULL,
icq varchar(20) DEFAULT '' NOT NULL,
aim varchar(20) DEFAULT '' NOT NULL,
yahoo varchar(20) DEFAULT '' NOT NULL,
signature mediumtext DEFAULT '' NOT NULL,
adminemail smallint(6) DEFAULT '0' NOT NULL,
showemail smallint(6) DEFAULT '0' NOT NULL,
invisible smallint(6) DEFAULT '0' NOT NULL,
usertitle varchar(250) DEFAULT '' NOT NULL,
customtitle smallint(6) DEFAULT '0' NOT NULL,
joindate int(10) unsigned DEFAULT '0' NOT NULL,
canpost smallint(6) DEFAULT '0' NOT NULL,
cookieuser smallint(6) DEFAULT '0' NOT NULL,
daysprune smallint(6) DEFAULT '0' NOT NULL,
lastvisit int(10) unsigned DEFAULT '0' NOT NULL,
lastactivity int(10) unsigned DEFAULT '0' NOT NULL,
lastpost int(10) unsigned DEFAULT '0' NOT NULL,
posts smallint(5) unsigned DEFAULT '0' NOT NULL,
timezoneoffset smallint(6) DEFAULT '0' NOT NULL,
emailnotification smallint(6) DEFAULT '0' NOT NULL,
iconpath varchar(254) DEFAULT '' NOT NULL,
usertext varchar(15) DEFAULT '' NOT NULL,
fav_gun varchar(100) DEFAULT '' NOT NULL,
fav_paint varchar(100) DEFAULT '' NOT NULL,
fav_barrel varchar(100) DEFAULT '' NOT NULL,
fav_goggles varchar(100) DEFAULT '' NOT NULL,
team varchar(100) DEFAULT '' NOT NULL,
sponsers varchar(100) DEFAULT '' NOT NULL,
field varchar(100) DEFAULT '' NOT NULL,
fav_player varchar(100) DEFAULT '' NOT NULL,
fav_team varchar(100) DEFAULT '' NOT NULL,
advice mediumtext DEFAULT '' NOT NULL,
interests mediumtext DEFAULT '' NOT NULL,
occupation varchar(100) DEFAULT '' NOT NULL,
city varchar(150) DEFAULT '' NOT NULL,
state char(2) DEFAULT '' NOT NULL,
country varchar(150) DEFAULT '' NOT NULL,
ignorelist mediumtext DEFAULT '' NOT NULL,
pmfolders mediumtext DEFAULT '' NOT NULL,
receivepm tinyint(4) DEFAULT '1' NOT NULL,
emailonpm tinyint(4) DEFAULT '1' NOT NULL,
PRIMARY KEY (userid),
KEY usergroupid (usergroupid),
KEY username (username)
);

#
# Table structure for table 'usergroup'
#
CREATE TABLE usergroup (
usergroupid smallint(5) unsigned NOT NULL auto_increment,
title char(100) DEFAULT '' NOT NULL,
usertitle char(100) DEFAULT '' NOT NULL,
canview smallint(6) DEFAULT '0' NOT NULL,
cansearch smallint(6) DEFAULT '0' NOT NULL,
canemail smallint(6) DEFAULT '0' NOT NULL,
canpostnew smallint(6) DEFAULT '0' NOT NULL,
canreply smallint(6) DEFAULT '0' NOT NULL,
canadminedit smallint(6) DEFAULT '0' NOT NULL,
canedit smallint(6) DEFAULT '0' NOT NULL,
candelete smallint(6) DEFAULT '0' NOT NULL,
canopenclose smallint(6) DEFAULT '0' NOT NULL,
canmove smallint(6) DEFAULT '0' NOT NULL,
cancontrolpanel smallint(6) DEFAULT '0' NOT NULL,
canusepm tinyint(4) DEFAULT '1' NOT NULL,
canpostpoll smallint(6) DEFAULT '0' NOT NULL,
PRIMARY KEY (usergroupid)
);

#
# Table structure for table 'usertitle'
#
CREATE TABLE usertitle (
usertitleid smallint(5) unsigned NOT NULL auto_increment,
minposts smallint(5) unsigned DEFAULT '0' NOT NULL,
title char(250) DEFAULT '' NOT NULL,
PRIMARY KEY (usertitleid)
);


[Edited by VirtueTech on 09-07-2000 at 11:59 AM]

09-08-2000, 07:26 AM
Hey not bad :)

I think you've got nearly them all !

I don't know how you add indexes in PHPAdmin being more of a
'hands on' type person :)

Try the command line version if you can otherwise
can someone else help that knows PHPAdmin ?

Sorry

Fodder