ok wir fangen mal von vorne an
Ich möchte den Admin-PN-lis-Mod auf den
Advanced-PN-Mod umbauen.
Ich habe nun folgende Tabellen:
-phpbb_privmsga
-phpbb_privmsga_recips
in der privmsga stehen die PN-Überschriften, sowie die
Inhalte.
In der privmsga_recips stehen die User ID die die PN geschrieben haben
und der Empfänger.
Ich bin nun schon sowiet , das ich die Überschriften und die Inhalte
angezeigt bekomme.
Was ich nun noch machen möchte ist die Absender_id mit der
User_id zuverknüpfen , so das ich den Namen angezeigt bekomme.
Hier der bis jetzt gehende Code:
Code: Alles auswählen
<?php
global $userdata, $lang, $board_config, $phpEx;
define('IN_PHPBB', true);
if( !empty($setmodules) )
{
$filename = basename(__FILE__);
$module['Users']['Users PN'] = $filename;
return;
}
//
// Let's set the root dir for phpBB
//
$phpbb_root_path = '../';
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);
//
// Set variables
//
$users_per_page = 25;
$start = (isset($HTTP_GET_VARS['start'])) ? intval($HTTP_GET_VARS['start']) : 0;
if( isset($HTTP_POST_VARS['sort']) )
{
$sort_method = $HTTP_POST_VARS['sort'];
}
else if( isset($HTTP_GET_VARS['sort']) )
{
$sort_method = $HTTP_GET_VARS['sort'];
}
else
{
$sort_method = 'privmsg_id';
}
if( isset($HTTP_POST_VARS['order']) )
{
$sort_order = $HTTP_POST_VARS['order'];
}
else if( isset($HTTP_GET_VARS['order']) )
{
$sort_order = $HTTP_GET_VARS['order'];
}
else
{
$sort_order = '';
}
$template->set_filenames(array(
'body' => 'admin/admin_pn_list_body.tpl')
);
// Count users
$sql = "SELECT count(privmsg_id) as total FROM ".phpbb_privmsga." WHERE privmsg_id > 0";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not count users", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$total_users = $row['total'];
$template->assign_vars(array(
'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
'U_LIST_ACTION' => append_sid("admin_pn_list.$phpEx"),
'L_SORT' => $lang['Sort'],
'L_ORDER' => $lang['Order'],
'L_SORT_DESCENDING' => $lang['Sort_Descending'],
'L_SORT_ASCENDING' => $lang['Sort_Ascending'],
'ID_SELECTED' => ($sort_method == 'privmsg_id') ? 'selected="selected"' : '',
'USERNAME_SELECTED' => ($sort_method == 'username') ? 'selected="selected"' : '',
'POSTS_SELECTED' => ($sort_method == 'privmsg_time') ? 'selected="selected"' : '',
'LASTVISIT_SELECTED' => ($sort_method == 'user_lastvisit') ? 'selected="selected"' : '',
'ASC_SELECTED' => ($sort_order != 'DESC') ? 'selected="selected"' : '',
'DESC_SELECTED' => ($sort_order == 'DESC') ? 'selected="selected"' : '',
'TOTAL_USERS' => $total_users
)
);
$sql = "SELECT * FROM ".phpbb_privmsga."
ORDER BY privmsg_id DESC
LIMIT ".$start.",".$users_per_page;
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query Users information", "", __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
$userrow[] = $row;
}
for ($i = 0; $i < $users_per_page; $i++)
{
if (empty($userrow[$i]))
{
break;
}
$row_color = (($i % 2) == 0) ? "row1" : "row2";
$template->assign_block_vars('userrow', array(
'COLOR' => $row_color,
'NUMBER' => $userrow[$i]['privmsg_id'],
'time' => date($userdata['user_dateformat'], $userrow[$i]['privmsg_time'], $userdata['user_timezone']),
'subject' => $userrow[$i]['privmsg_subject'],
'text' => wordwrap( $userrow[$i]['privmsg_text'],100, "<br>", 25),
'von' => $userrow[$i]['username'],
)
);
}
$template->assign_vars(array(
'PAGINATION' => generate_pagination(append_sid("admin_pn_list.$phpEx?sort=$sort_method&order=$sort_order"), $total_users, $users_per_page, $start),
'PAGE_NUMBER' => sprintf($lang['Page_of'], ( floor( $start / $users_per_page ) + 1 ), ceil( $total_users / $users_per_page ))
) // end array
);
// Finally...
$template->pparse('body');
include('./page_footer_admin.'.$phpEx);
?>
nun habe ich schon folgendes Probiert:
Code: Alles auswählen
$sql = "SELECT * FROM ".phpbb_privmsga." AND ".phpbb_privmsga_recips."
ORDER BY privmsg_id DESC
WHERE ".privmsga_user_id." = ".users.user_id." AND
".users.username." = $username
LIMIT ".$start.",".$users_per_page;
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not query Users information", "", __LINE__, __FILE__, $sql);
}
aber es klappt nicht und ich bekomme folgenden Fehler:
Code: Alles auswählen
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND phpbb_privmsga_recips ORDER BY privmsg_id DESC
SELECT * FROM phpbb_privmsga AND phpbb_privmsga_recips ORDER BY privmsg_id DESC WHERE privmsga_user_id = usersuser_id AND usersusername = LIMIT 0,25
Ich stelle ich nun di abfrage am besten an.
Gruß Jörg