Vinny Posted October 1, 2012 at 05:35 PM Report #477338 Posted October 1, 2012 at 05:35 PM Antes de postar minha duvida, vou explicar e sem o mais claro possivel para entederem minha aplicação: Estou montando um sistema de artigos/tutoriais para ser integrado ao sistema de fóruns phpBB3, nesse sistema eu posso ver a lista de artigos, enviar um novo artigo e ver os artigos individualmente. A parte que envia os artigos para o banco de dados, funciona perfeitamente, também funciona a listagem de todos os registros de artigos na tabela. A única coisa que não consegui fazer funciona é a exibição individual dos registros. Por exemplo, para ver o artigo de id 1, vou a seguinte url: localhost/page.php?mode=view&id=1 Só que ao ir a essa URL, é exibido todos os registros e não apenas o 1, eu quero ver atraves dos links, cada informação de cada registro individualmente. Deu para entender? A página irá mostrar o titulo do artigo, descrição, categoria, autor e o conteudo do artigo. Segue abaixo o codigo PHP: <?php /** * * @package phpBB3 * @version $Id$ * @copyright © 2012 Vinny * @license http://opensource.org/licenses/gpl-license.php GNU Public License * */ /** */ /** * @ignore */ define('IN_PHPBB', true); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.' . $phpEx); include($phpbb_root_path . 'includes/functions_display.' . $phpEx); include($phpbb_root_path . 'includes/functions_posting.' . $phpEx); include($phpbb_root_path . 'includes/bbcode.' . $phpEx); include ($phpbb_root_path . 'includes/message_parser.' . $phpEx); include ($phpbb_root_path . 'includes/functions_user.' . $phpEx); // Start session management $user->session_begin(); $auth->acl($user->data); $user->setup('mods/kb_mod'); $mode = request_var('mode', ''); $submit = (isset($_POST['submit'])) ? true : false; $article_id = request_var('article_id', 0); $article_subject = request_var('article_subject', '', true); $article_author = request_var('article_author', '', true); $article_desc = request_var('article_desc', '', true); $article_cat = request_var('article_cat', '', true); $article_content = request_var('article_content', ''); $error = $row = array(); $current_time = time(); //Settings $uid = $bitfield = $options = ''; $allow_bbcode = $allow_urls = $allow_smilies = true; $article_content = utf8_normalize_nfc(request_var('article_content', '', true)); generate_text_for_storage($article_content, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies); $template->assign_vars(array( 'U_KB_SUBMIT' => append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=submit'), 'U_KB_REPORT' => append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=report'), 'U_KB_ADM' => append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=adm'), )); $sql_ary = array( 'article_id' => $article_id, 'article_subject' => $article_subject, 'article_author' => $article_author, 'article_desc' => $article_desc, 'article_cat' => $article_cat, 'article_content' => $article_content, 'bbcode_uid' => $uid, 'bbcode_bitfield' => $bitfield, 'create_time' => (int) time(), ); switch ($mode) { case 'submit': $l_title = ($user->lang['KB_SUBMIT']); $template_html = 'kb/submit_article.html'; $s_action = append_sid("{$phpbb_root_path}kb/artigo.$phpEx", "mode=submit"); $s_hidden_fields = ''; $form_enctype = ''; add_form_key('postform'); //Settings $uid = $bitfield = $options = ''; $allow_bbcode = $allow_urls = $allow_smilies = true; $article_content = utf8_normalize_nfc(request_var('article_content', '', true)); generate_text_for_storage($article_content, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies); $cat_list = ''; $cat_list .= '<option value="' . $user->lang['KB_CAT_GENERAL'] . '">' . $user->lang['KB_CAT_GENERAL'] . '</option>'; $cat_list .= '<option value="' . $user->lang['KB_CAT_MOD'] . '">' . $user->lang['KB_CAT_MOD'] . '</option>'; $cat_list .= '<option value="' . $user->lang['KB_CAT_STYLE'] . '">' . $user->lang['KB_CAT_STYLE'] . '</option>'; $cat_list .= '<option value="' . $user->lang['KB_CAT_MISC'] . '">' . $user->lang['KB_CAT_MISC'] . '</option>'; // Start assigning vars for main posting page ... $template->assign_vars(array( 'S_CAT_LIST' => '<select name="article_cat" id="article_cat">' . $cat_list . '</select>', 'S_FORM_ENCTYPE' => $form_enctype, 'S_POST_ACTION' => $s_action, 'S_HIDDEN_FIELDS' => $s_hidden_fields, 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '', )); // Request login if ($user->data['user_id'] == ANONYMOUS) { login_box('', $user->lang['LOGIN']); } add_form_key('postform'); if ($submit) { if (!check_form_key('postform')) { trigger_error('FORM_INVALID'); } } switch ($submit) { case 'add': if ($article_subject == '' || $article_content == '') { if ($article_subject == '' && $article_content == '') { $u_action = append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=submit'); meta_refresh('5', $u_action); trigger_error($user->lang['KB_NEED_DATA'] . '<BR /><BR /><a href="' . $u_action . '">' . $user->lang['KB_RETURN'] . '</a>'); } elseif ($article_subject == '') { trigger_error($user->lang['KB_NEED_SUBJ'] . back_link($this->u_action)); } elseif ($article_content == '') { trigger_error($user->lang['KB_NEED_CONTENT'] . back_link($this->u_action)); } } else { $db->sql_query('INSERT INTO ' . ARTICLES_TABLE .' ' . $db->sql_build_array('INSERT', $sql_ary)); trigger_error($user->lang['KB_ARTICLE_CREATED']); } break; } break; case 'report': $l_title = ($user->lang['KB_REPORT']); $template_html = 'kb/report_article.html'; // Request login if ($user->data['user_id'] == ANONYMOUS) { login_box('', $user->lang['LOGIN']); } break; case 'view': // Shows the articles in the System $sql = 'SELECT article_id, article_subject, article_author, article_cat, article_desc, article_content, bbcode_uid, bbcode_bitfield FROM ' . ARTICLES_TABLE . ' WHERE article_id >= 0 '; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $content = nl2br($row['article_content']); $content = generate_text_for_display($row['article_content'], $row['bbcode_uid'], $row['bbcode_bitfield'], 7); $content = smiley_text($content); $page_title = $row['article_subject']; $template->assign_block_vars('article',array( 'ARTICLE_ID' => censor_text($row['article_id']), 'ARTICLE_SUBJECT' => censor_text($row['article_subject']), 'ARTICLE_AUTHOR' => censor_text($row['article_author']), 'ARTICLE_DESC' => censor_text($row['article_desc']), 'ARTICLE_CAT' => censor_text($row['article_cat']), 'ARTICLE_CONTENT' => censor_text($content), //'ARTICLE_LINK' => append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=view&id=' .$row['article_id']), )); } $l_title = ($user->lang['VIEW_ARTICLE'] . ' - ' . $page_title); $template_html = 'kb/article_body.html'; break; case 'adm': $l_title = ($user->lang['KB_ADM']); $template_html = 'kb/adm_kb.html'; break; default: $l_title = ($user->lang['KB_INDEX']); $template_html = 'kb/kb_index.html'; // List all articles in the System $sql = 'SELECT article_id, article_subject, article_author, article_cat, article_desc, article_content, bbcode_uid, bbcode_bitfield FROM ' . ARTICLES_TABLE . ' ORDER BY article_subject'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $content = generate_text_for_display($row['article_content'], $row['bbcode_uid'], $row['bbcode_bitfield'], 7); $template->assign_block_vars('article', array( 'ARTICLE_ID' => censor_text($row['article_id']), 'ARTICLE_SUBJECT' => censor_text($row['article_subject']), 'ARTICLE_AUTHOR' => censor_text($row['article_author']), 'ARTICLE_DESC' => censor_text($row['article_desc']), 'ARTICLE_CAT' => censor_text($row['article_cat']), 'ARTICLE_CONTENT' => $content, 'ARTICLE_LINK' => append_sid("{$phpbb_root_path}kb/artigo.$phpEx", 'mode=view&id=' .$row['article_id']), )); } break; } $template->assign_block_vars('navlinks', array( 'FORUM_NAME' => $l_title, )); // Output page page_header($l_title, false); $template->set_filenames(array( 'body' => $template_html) ); page_footer(); ?> A parte de exibição dos artigos fica dentro da case view, não sou expert em PHP e vou fazendo tudo no aprendizado, pois não sei se o codigo que pega os registros da tabela esta correto. E neste caso todo o codigo é integrado ao phpBB3. Espero que tenham compreendido a minha duvida.
HappyHippyHippo Posted October 1, 2012 at 05:52 PM Report #477339 Posted October 1, 2012 at 05:52 PM (edited) $sql = 'SELECT article_id, article_subject, article_author, article_cat, article_desc, article_content, bbcode_uid, bbcode_bitfield FROM ' . ARTICLES_TABLE . ' WHERE article_id >= 0 '; tens de filtrar pelo id que pretendes : $sql = 'SELECT article_id, article_subject, article_author, article_cat, article_desc, article_content, bbcode_uid, bbcode_bitfield FROM ' . ARTICLES_TABLE . ' WHERE article_id = '.(int)$_GET['id']; PS : esta é uma dúvida de SQL e não de PHP Edited October 1, 2012 at 05:53 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
brunoais Posted October 2, 2012 at 10:05 AM Report #477416 Posted October 2, 2012 at 10:05 AM (edited) Tópico movido de PHP para MySQL (para um local que faz mais sentido...) Edited October 2, 2012 at 10:05 AM by brunoais "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%.
Vinny Posted October 2, 2012 at 04:23 PM Author Report #477455 Posted October 2, 2012 at 04:23 PM Perfeito. Obrigado HappyHippyHippo. brunoais desculpe-me por ter postado na seção incorreta. Abraços. 👍
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now