Pagina 1 van 3

recent topics

Geplaatst: 27 mei 2004, 19:51
door LazyTiger
recent topics van phpbbhacks, geen idee of het first of second version is.
anyway, daar zit een zipbestandje in om recente topics op de index te laten verschijnen.
die heb ik dus geinstalleerd, alleen nu krijg ik de volgende fout:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /usr/home/mfo/public_html/phpBB2/recent.php on line 18

Code: Selecteer alles

$sql = "SELECT post_id
FROM slave1_posts;
if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
	$recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);
regel 18 is: $recent_ids[] = $row['post_id'];

wat is er fout dan?

Geplaatst: 27 mei 2004, 19:55
door mosymuis
$sql = "SELECT post_id
FROM slave1_posts;
Ik mis hier een " :)

Geplaatst: 27 mei 2004, 20:20
door LazyTiger
weet ik.. maar als die er wel staat, krijg ik een fout in regel 11: if ( !($result = $db->sql_query($sql)) )

Geplaatst: 27 mei 2004, 20:22
door mosymuis
eindigt regel 10 dan nog wel op een ; :?:

Geplaatst: 27 mei 2004, 21:37
door LazyTiger

Code: Selecteer alles

$sql = "SELECT post_id 
FROM slave1_posts";
zo had ik het.

Geplaatst: 27 mei 2004, 21:43
door mosymuis

Code: Selecteer alles

$sql = "SELECT post_id
FROM slave1_posts";
if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
   $recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);
Ik heb dit stukje zelf getest, en er zitten geen syntax fouten in. Je moet het dus ergens anders gaan zoeken.

Geplaatst: 27 mei 2004, 21:48
door LazyTiger
hm... zal zaterdag dan eens kijken...
het is nu al laat, morgen examens en uitgaan. :thumb:

Geplaatst: 28 mei 2004, 17:21
door LazyTiger
heb toch vandaag nog even snel gekeken:

Code: Selecteer alles

$sql = "SELECT post_id
FROM slave1_posts";
if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
	$recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);

$recent_forum = ( isset($HTTP_POST_VARS['forum']) ) ? intval($HTTP_POST_VARS['forum']) : -1;
if ( $recent_forum == -1 )
{
        $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); 
        $ignore_forum_sql = '';
        while( list($key, $value) = each($is_auth_ary) )
        {
                if ( !$value['auth_read'] )
                {
                        $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
                }
        }
        if ( $ignore_forum_sql != '' )
        {
                $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
        }
}
                if ( $recent_author == '' && $auth_sql == '' )
                {
                        $sql = "SELECT topic_id FROM slave1_posts
                                WHERE post_id IN (" . implode(", ", $recent_ids) . ") 
                                $where_sql GROUP BY topic_id";
                }
                else
                {
                        $from_sql = slave1_posts p"; 
de allerlaatste regel hier en de eerste regel. daar zit de fout in, want dan heb ik dus POSTS_TABLE uitgesloopt. echter, er stond maar er stond maar 1 punt en 1 aanhalingsteken of zo. (POSTS TABLE . ")

Geplaatst: 28 mei 2004, 17:56
door mosymuis
Dit kan natuurlijk al niet:

Code: Selecteer alles

$from_sql = slave1_posts p";
(komma'tje " vergeten)

Geplaatst: 28 mei 2004, 18:06
door LazyTiger
weet ik.. maar als ik er wel 1 toevoeg, dan krijg ik een error in die regel.

of ik heb hem verkeerd geplaatst (voor slave1)

Geplaatst: 28 mei 2004, 18:08
door mosymuis
Die komma moet er iig staan, als er een nieuwe error komt ligt dat ergens anders aan.

Geplaatst: 28 mei 2004, 18:12
door LazyTiger
foutje bij mij, hij verwijst terug naar regel 11: http://www.muziekforumonline.nl/phpBB2/recent.php

dus weer deze regel: if ( !($result = $db->sql_query($sql)) )

zo ziet het er nu uit:

Code: Selecteer alles

$sql = "SELECT post_id
FROM slave1_posts";
if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
}
$recent_ids = array();
while( $row = $db->sql_fetchrow($result) )
{
	$recent_ids[] = $row['post_id'];
}
$db->sql_freeresult($result);

$recent_forum = ( isset($HTTP_POST_VARS['forum']) ) ? intval($HTTP_POST_VARS['forum']) : -1;
if ( $recent_forum == -1 )
{
        $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata); 
        $ignore_forum_sql = '';
        while( list($key, $value) = each($is_auth_ary) )
        {
                if ( !$value['auth_read'] )
                {
                        $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
                }
        }
        if ( $ignore_forum_sql != '' )
        {
                $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
        }
}
                if ( $recent_author == '' && $auth_sql == '' )
                {
                        $sql = "SELECT topic_id FROM slave1_posts
                                WHERE post_id IN (" . implode(", ", $recent_ids) . ") 
                                $where_sql GROUP BY topic_id";
                }
                else
                {
                        $from_sql = "slave1_posts p";
daarna komen deze regels:

Code: Selecteer alles

if ( $auth_sql != '' )
                        {
                                $from_sql .= "slave1_forums f";
                                $where_sql .= " AND f.forum_id = p.forum_id AND $auth_sql";
                        }
                        $sql = "SELECT p.topic_id FROM $from_sql 
                                WHERE p.post_id IN (" . implode(", ", $recent_ids) . ") 
                                $where_sql GROUP BY p.topic_id";
                }
                if ( !($result = $db->sql_query($sql)) )
                {
                        message_die(GENERAL_ERROR, 'Could not obtain topic ids', '', __LINE__, __FILE__, $sql);
                }

                $recent_ids = array();
                while( $row = $db->sql_fetchrow($result) )
                {
                        $recent_ids[] = $row['topic_id'];
                }
                $db->sql_freeresult($result);

$auth_results = implode(', ', $recent_ids);
$where_part1 = ( $special_forums == '0' ) ? 't.topic_id IN ('.$auth_results.')' : 'f.forum_id IN ('.$forums.')';

$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
        FROM slave1_topics t, slave1_forums f, ". USERS_TABLE ." u, slave1_posts p, slave1_posts p2, ". USERS_TABLE ." u2
        WHERE $where_part1
              AND t.topic_poster = u.user_id
              AND f.forum_id = t.forum_id 
              AND p.post_id = t.topic_first_post_id
              AND p2.post_id = t.topic_last_post_id
              AND u2.user_id = p2.poster_id
        ORDER BY t.topic_last_post_id DESC LIMIT $limit";
if ( !$result = $db->sql_query($sql) )
{
        message_die(GENERAL_ERROR, 'Could not obtain main information', '', __LINE__, __FILE__, $sql);
}
$line = array();
while( $row = $db->sql_fetchrow($result) )
{
        $line[] = $row;
}
$db->sql_freeresult($result);		
	
(hopelijk niet te lang, anders zet ik het in een txt bestand.)

daarna komt nog wat, maar daar heb ik niks in gewijzigd.
maar volgens mij ligt het aan het 1ste gedeelte.

Geplaatst: 28 mei 2004, 21:08
door Luuk
haal van die regel eens 1 ) weg

Geplaatst: 29 mei 2004, 11:19
door LazyTiger
zoals ik het nu zie zou dat dan niet meeer kloppen omdat er 3 open gaan en ook weer 3 dicht op dit moment.

Geplaatst: 29 mei 2004, 16:44
door Luuk
ow ja, had er een niet gezien die open ging :oops:

Geplaatst: 29 mei 2004, 17:35
door LazyTiger
ik heb ff het originele bestand geupload.
ik krijg meteen een error.

en wel in deze regel:

Code: Selecteer alles

if ( !($result = $db->sql_query($sql)) )
dus het probleem was er al.

maar kijk eens naar deze code:

Code: Selecteer alles

$sql = "SELECT post_id FROM " . POSTS_TABLE;
kan dat ook zo? ik heb het namelijk nog nooit zo gezien.

anyway, ik heb die zin dus veranderd in:

Code: Selecteer alles

$sql = "SELECT post_id 
FROM slave1_posts"; 

Geplaatst: 29 mei 2004, 18:30
door mosymuis
P.T. schreef:maar kijk eens naar deze code:

Code: Selecteer alles

$sql = "SELECT post_id FROM " . POSTS_TABLE;
kan dat ook zo?
Ja, waarom niet? :?:

P.T. schreef:ik heb het namelijk nog nooit zo gezien.anyway, ik heb die zin dus veranderd in:

Code: Selecteer alles

$sql = "SELECT post_id 
FROM slave1_posts"; 
Zou moeten werken... :?

Geplaatst: 30 mei 2004, 11:11
door LazyTiger
hm.. ja ik vond het er wazig uit zien.
anyway, in het bestand zelf zit dus zowiezo al een fout, zonder dat ik iets veranderd heb.

(ik ga er overigens vanuit dat het niet uitmaakt dat ik hem niet in de index heb geinclude en daar heb laten verschijnen)

Geplaatst: 30 mei 2004, 12:04
door mosymuis
P.T. schreef:(ik ga er overigens vanuit dat het niet uitmaakt dat ik hem niet in de index heb geinclude en daar heb laten verschijnen)
Wat syntax betreft zou dat niet mogen uitmaken, op de werking heeft het miss wel invloed.

Geplaatst: 30 mei 2004, 15:48
door LazyTiger
nou doet hij het dus.
echter, ik wil hem wat verbouwen...

http://www.muziekforumonline.nl/phpBB2/index.php

ik wil eigenlijk dat hij ze in 2 kolommen zet.
langs elkaar.
dus in iedere kolom 5 ipv in iedere kolom 10 nu. (en dan dus ook niet dubbel)

maar hoe?