vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB4 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=252)
-   -   Showing data from the database (https://vborg.vbsupport.ru/showthread.php?t=275788)

HMBeaty 12-22-2011 02:14 AM

Showing data from the database
 
So, I've spent the last 5 hours rewriting an old modification, making something new out of it, and I am now stuck at a point where I don't know what to do next lol

Basically, I made a random quote database (and it works too :D (I think)), I just need to find out how to show the quote and the author on the forum side now. This is actually my first time making something this extensive in the AdminCP :eek:

Anyway, upon installation, I've made it so it'll add predefined quotes to the database, which looks something like:
Code:

$db->hide_errors();

$db->query_write("CREATE TABLE IF NOT EXISTS `" . TABLE_PREFIX . "usml_quotesdb` (
    `quoteid` int(10) NOT NULL auto_increment,
    `author` varchar(50) NOT NULL,
    `quote` varchar(350) NOT NULL,
    PRIMARY KEY  (`quoteid`)
)");

$db->query_write("INSERT INTO `" . TABLE_PREFIX . "usml_quotesdb` (`quoteid`, `author`, `quote`) VALUES
    (1, 'Author1', 'Quote1'),
    (2, 'Author2', 'Quote2'),
    (3, 'Author3', 'Quote3')
");

$db->show_errors();

Now, back to my original question. How do I display the quotes and the authors? I'm actually going to be showing these randomly (which I can figure out how to do), I just need the help to actually start getting them to display lol

Thanks in advance :D

HMBeaty 12-22-2011 02:20 AM

1 Attachment(s)
Here's the screenshot of what I have so far :D

https://vborg.vbsupport.ru/attachmen...1&d=1324523992

Lynne 12-22-2011 02:52 AM

Are you asking for help displaying these on the forums and are wondering how to put them there?

HMBeaty 12-22-2011 03:03 AM

Quote:

Originally Posted by Lynne (Post 2279945)
Are you asking for help displaying these on the forums and are wondering how to put them there?

Yes. Not sure exactly where I'm going to put this yet, (probably above the forums in forumhome) but I'd like to show it like this...

If the id = 1, then it shows "Quote 1 - Author 1", if the id = 2, then it shows "Quote 2 - Author 2", etc, etc.

Lynne 12-22-2011 05:01 PM

So you do the query for the quote..
PHP Code:

$myquote $db->query_first("SELECT quote, author FROM " TABLE_PREFIX "usml_quotesdb WHERE quoteid = '" $somevar "'"); 

Do a query_first and then you can use the variables directly...
PHP Code:

$newTemplate vB_Template::create('quotetemplate);
    $newTemplate->register('
myquote', $myquote);
$newTemplate->render(); 

Now in the quotetemplate, you may use:

HTML Code:

{vb:raw myquote.quote}
{vb:raw myquote.author}


Is that what you were asking?

HMBeaty 12-22-2011 06:25 PM

1 Attachment(s)
I think so. I've attached the file to show the contents of what I currently have. Now my question is, if I use:
PHP Code:

$myquote $db->query_first("SELECT quote, author FROM " TABLE_PREFIX "usml_quotesdb WHERE quoteid = '" $somevar "'"); 

is that going to show the quotes one at a time, randomly?

(I'm not too experienced with queries at all :o. Just trying re-create a different mod to do what I want :D)

EDIT: oops, forgot to attach the file lol. Anyway, this is going to be located at /admincp/quotesdb.php

PHP Code:

<?php
/*======================================================================*\
|| #################################################################### ||
|| # U.S. Military Life                                                  # ||
|| # Random Quotes 1.0.0                                              # ||
|| # ---------------------------------------------------------------- # ||
|| # Copyright ? U.S. Military Life 2011                              # ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------------------------------------------------------- # ||
|| # http://www.USMilitaryLife.com                                      # ||
|| #################################################################### ||
\*======================================================================*/

// ######################## SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### PRE-CACHE TEMPLATES AND DATA ######################
$phrasegroups = array();

$specialtemplates = array();

$globaltemplates = array();

$actiontemplates = array();

// ########################## REQUIRE BACK-END ############################
require_once('./global.php');
require_once(
DIR '/includes/adminfunctions_template.php');

if (empty(
$_REQUEST['do']))
{
    
$_REQUEST['do'] = 'main';
}

if (
$_REQUEST['do'] == 'main')
{
    
print_cp_header("[USML] Random Quotes");

    
print_form_header('quotesdb''manage');
    
print_table_start();
    
print_table_header("Quotes"4);
    
print_cells_row(array("ID""Author""Quote""Action"),1,0,1);

    
$quotes $vbulletin->db->query("SELECT * FROM ".TABLE_PREFIX."usml_quotesdb ORDER BY quoteid ASC");
    while (
$row $vbulletin->db->fetch_array($quotes))
    {
        
$row[quoteid] = htmlspecialchars_uni($row['quoteid']);
        
$row[author] = htmlspecialchars_uni($row['author']);
        
$row[quote] = htmlspecialchars_uni($row['quote']);
        
        
print_cells_row(array("$row[quoteid]","$row[author]","$row[quote]","<a href='?do=editquote&quoteid={$row['quoteid']}'>Edit</a>&nbsp;&nbsp;<a href='?do=quotedel&quoteid={$row['quoteid']}'>Delete</a>"),0,0,1);
    }

    
print_table_footer();
    
    
print_table_footer();
    
print_form_header('quotesdb''newquote');
    
print_table_header("Add a new quote"2);
        
print_input_row("Author"'newqdbauthor');
        
print_textarea_row("Quote"'newqdbquote');
    
print_submit_row("$vbphrase[save]");
    
print_table_footer();
    
    
print_cp_footer();
}

if(
$_POST['do']=="newquote")
{
    
$newauthor $vbulletin->input->clean_GPC('p''newqdbauthor'TYPE_STR);
    
$newauthor =& $db->escape_string($vbulletin->GPC['newqdbauthor']);
    
    
$newquote $vbulletin->input->clean_GPC('p''newqdbquote'TYPE_STR);
    
$newquote =& $db->escape_string($vbulletin->GPC['newqdbquote']);
    
    
$db->query_write("INSERT INTO `" TABLE_PREFIX "usml_quotesdb` VALUES('','".$newauthor."','".$newquote."')");
    
define('CP_REDIRECT''quotesdb.php?do=main');
    
print_stop_message('egr_succces');
}

if (
$_REQUEST['do'] == 'quotedel')
{
    
$quoteid $vbulletin->input->clean_GPC('g''quoteid'TYPE_UINT);

    
$db->query_write("DELETE FROM `" TABLE_PREFIX "usml_quotesdb` WHERE quoteid=$quoteid");
    
define('CP_REDIRECT''quotesdb.php?do=main');
    
print_stop_message('egr_succes');
}

if (
$_REQUEST['do'] == 'editquote')
{
    
$rowid $vbulletin->input->clean_GPC('g''quoteid'TYPE_UINT);
    
$rowid =& $db->escape_string($vbulletin->GPC['quoteid']);    

    
$quotedata $vbulletin->db->query("SELECT * FROM `" TABLE_PREFIX "usml_quotesdb` WHERE quoteid='".$rowid."'");
    
$nu $db->fetch_array($quotedata);

    
$quoteid[data] = htmlspecialchars_uni($nu['quoteid']);
    
$author[data] = htmlspecialchars_uni($nu['author']);
    
$quote[data] = htmlspecialchars_uni($nu['quote']);

    
print_cp_header("Edit Quote");
    
print_table_start();
    
print_form_header('quotesdb''editsave');
    
print_table_header("Edit Quote (id:$quoteid[data])"2);

    echo 
"<input type='hidden' name='quoteid' value='".$quoteid['data']."'>";

    
print_input_row("Author"'newauthor'"$author[data]");
    
print_textarea_row("Quote"'newquote'"$quote[data]");

    
print_submit_row("$vbphrase[save]");

    
print_table_footer();
    
print_cp_footer();

    
define('CP_REDIRECT''quotesdb.php?do=main');
    
print_stop_message('egr_succes');
}

if (
$_REQUEST['do'] == 'editsave')
{
    
$newqdbid $vbulletin->input->clean_GPC('p''quoteid'TYPE_UINT);
    
$newqdbauthor $vbulletin->input->clean_GPC('p''newauthor'TYPE_STR);
    
$newqdbquote $vbulletin->input->clean_GPC('p''newquote'TYPE_STR);

    
$newqdbid =& $db->escape_string($vbulletin->GPC['quoteid']);
    
$newqdbauthor =& $db->escape_string($vbulletin->GPC['newauthor']);
    
$newqdbquote =& $db->escape_string($vbulletin->GPC['newquote']);

    
$db->query_write("UPDATE `" TABLE_PREFIX "usml_quotesdb` SET author='".$newqdbauthor."', quote='".$newqdbquote."' WHERE quoteid='".$newqdbid."'");

    
define('CP_REDIRECT''quotesdb.php?do=main');
    
print_stop_message('egr_succes');
}
?>


HMBeaty 12-22-2011 10:43 PM

I think I found something that would work how I need.....
PHP Code:

$myquote $db->query_first("SELECT quote, author FROM `" TABLE_PREFIX "usml_quotesdb` ORDER BY rand() LIMIT 1"); 

Although I'm not sure if
PHP Code:

quoteid 

needs to be in there as well or not...

--------------- Added [DATE]1324604070[/DATE] at [TIME]1324604070[/TIME] ---------------

Woohoo! I've got it working (I think)! Now to tidy everything up :D

One more question....the columns in the admincp (ID, Author, Quote, Action), is it possible to make those a fixed width?

Lynne 12-23-2011 02:46 AM

The text areas are the size that you define for the <input> area.

Glad you got it working. :)

HMBeaty 12-23-2011 02:53 AM

I mean the column width for the columns in the top table. Like, for example, maybe make the ID column 10px wide and the other Action column around 200px wide and I guess the others would expand with what room is left :)

--------------- Added [DATE]1324623736[/DATE] at [TIME]1324623736[/TIME] ---------------

Figured that out as well. Got the code from admincp/block.php :)

What I did was, above:
PHP Code:

print_table_header("Quotes"4); 

I added:
PHP Code:

print_column_style_code(array('width:50px''''''width:100px')); 

Looks better now :D


All times are GMT. The time now is 10:36 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01132 seconds
  • Memory Usage 1,817KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)bbcode_html_printable
  • (8)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (9)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete