PDA

View Full Version : functions error


The_Cyberdemon
04-03-2003, 10:34 PM
okay, here's the error:
Fatal error: Call to a member function on a non-object in /home/cyber/public_html/vb/admin/functions.php on line 218

I get that after i put this in my admin/functions.php file:
$rankagefetch=$DB_site->query("SELECT * FROM usertitle WHERE rankcat='$post[ranksetid]'");
$rankage=$DB_site->fetch_array($rankagefetch);
if($post[posts]>='$rankage[miniposts]') {
$tempposts=$rankage[miniposts];
}
$urrankfetch=$DB_site->query("SELECT * FROM usertitle WHERE rankcat='$post[ranksetid]' AND miniposts='$tempposts'");
$urrank=$DB_site->fetch_array($urrankfetch);
$post[usertitle]=$urrank[title];

Any idea what the error is?

And here's the functions.php attached if ye need it.

Xenon
04-03-2003, 10:44 PM
$DB_site isn't globalized in the function where you have this code, add it to the globals.

also if this is getpostbit you should remove that hack, because it generates one query per post which is bad...

also you are not allowed to attach full vb-files!

The_Cyberdemon
04-03-2003, 11:00 PM
oh, sorry, didn't know about that. I have no idea what the getpostbit is, soo..
Do i just do require("./global.php"); ?

EDIT: No, that didn't work, i get a new error:

Fatal error: Cannot redeclare stripslashesarray() (previously declared in /home/cyber/public_html/vb/global.php:31) in /home/cyber/public_html/vb/global.php on line 31


So, how exactly would i do this then?

Xenon
04-03-2003, 11:17 PM
make a variable global has nothing to do with global.php

it's basic php knowledge when working with functions.

it's meant to put global $DB-site; before that block of code

The_Cyberdemon
04-03-2003, 11:19 PM
Sorry to annoy you, but being the complete hacking newbie that i am, how exactly do i do that, i mean, step by step. Act like your talking to a little child or something. Step by step...lol

Xenon
04-04-2003, 02:47 PM
as i said change your code you posted above into that:

global $DB_site;
$rankagefetch=$DB_site->query("SELECT * FROM usertitle WHERE rankcat='$post[ranksetid]'");
$rankage=$DB_site->fetch_array($rankagefetch);
if($post[posts]>='$rankage[miniposts]') {
$tempposts=$rankage[miniposts];
}
$urrankfetch=$DB_site->query("SELECT * FROM usertitle WHERE rankcat='$post[ranksetid]' AND miniposts='$tempposts'");
$urrank=$DB_site->fetch_array($urrankfetch);
$post[usertitle]=$urrank[title];

The_Cyberdemon
04-04-2003, 06:44 PM
alrighty, all try that

The_Cyberdemon
04-04-2003, 07:30 PM
okay, now it contacted the db, but i get thsi error:
Database error in vBulletin 2.3.0:

Invalid SQL: SELECT * FROM usertitle WHERE rankcat='5' AND miniposts=''
mysql error: Unknown column 'miniposts' in 'where clause'

mysql error number: 1054

Date: Friday 04th of April 2003 04:17:51 PM
Script: http://www.blindedstorms.com/vb/vb/showthread.php?postid=1029
Referer: http://www.blindedstorms.com/vb/index.php

Two reasons that's weird - A: it doesn't show the miniposts, and it should

B: There is a miniposts field in the usertitle db.

Here are some db things:
The new table i added is called "cats", with two columns "rankcat" and "catname"

In usertitle table, i added a "rankcat" column.
In user, i added a "ranksetid" column

Just thought that might be important

Stadler
04-05-2003, 06:20 PM
the column is call minposts, not miniposts. ;)

The_Cyberdemon
04-06-2003, 01:39 PM
lol. oops! let me try that