PDA

View Full Version : template reading database data


al3bed
09-19-2009, 02:57 AM
hello,

I have a problem (how-to).. let me show you an example:

if(something == something else){
$ain_data = $vbulletin->db->query_first("
SELECT id, type, content
FROM " . TABLE_PREFIX . "ainadse AS ainadse
WHERE id = '1' ");

//str_replace code to fetch the template (show) here
}

if(something == something else){
$ain_data = $vbulletin->db->query_first("
SELECT id, type, content
FROM " . TABLE_PREFIX . "ainadse AS ainadse
WHERE id = '2' ");

//str_replace code to fetch the template (show) here
}

if(something == something else){
$ain_data = $vbulletin->db->query_first("
SELECT id, type, content
FROM " . TABLE_PREFIX . "ainadse AS ainadse
WHERE id = '3' ");

//str_replace code to fetch the template (show) here
}

now the problem is when I call $ain_data from a template it's always take the last one in the template... in our example its will take data of id 3

is there any way to solve that? cuz my brain out of data now!
I try something like this but it's the same:

if(something == something else){

$ain_id = '1';

//str_replace code to fetch the template (show) here
}

if(something == something else){

$ain_id = '2';

//str_replace code to fetch the template (show) here
}

if(something == something else){

$ain_id = '3';

//str_replace code to fetch the template (show) here
}

$ain_data = $vbulletin->db->query_first("
SELECT id, type, content
FROM " . TABLE_PREFIX . "ainadse AS ainadse
WHERE id = '$ain_id' ");

.. template always read last variable $ain_id

what I'm trying to achive? what is my idea?
I want to show ads in a forum by a templete
in a plugin, I read the ads data from the database then
use str_replace to fetch that template in exact place where i want
regarding to the if statment

if there is a better way please tell me
I think my way to achive this is wrong!

thanks alot

Lynne
09-19-2009, 03:40 AM
It's hard to tell what you are doing wrong since you aren't giving us the real if statements.

al3bed
09-19-2009, 10:05 AM
sorry the if statements look like:


$db->hide_errors();
$ain_info = $vbulletin->db->query_first("
SELECT fh_loc_1, fh_loc_2, fh_loc_3, fh_adid_1, fh_adid_2, fh_adid_3
FROM " . TABLE_PREFIX . "adsopt AS adsopt
WHERE id = '1' ");
$db->show_errors();

if($ain_info['fh_adid_1'] != '0'){

//code for data 1

}

if($ain_info['fh_adid_2'] != '0'){

//code for data 2

}

if($ain_info['fh_adid_3'] != '0'){

//code for data 3

}

code for data is the same as what I wirte in first post something like:

$ain_data = $vbulletin->db->query_first("
SELECT id, type, content
FROM " . TABLE_PREFIX . "ainadse AS ainadse
WHERE id = '1' ");

if($ain_info['fh_loc_1'] == '1'){
$vbulletin->templatecache['FORUMHOME'] = str_replace('$navbar', '$ain_tableh $ain_tablef'.'$navbar', $vbulletin->templatecache['FORUMHOME']);}
elseif($ain_info['fh_loc_1'] == '2'){
$vbulletin->templatecache['FORUMHOME'] = str_replace('$navbar', '$navbar'.'$ain_tableh $ain_tablef', $vbulletin->templatecache['FORUMHOME']);}

whereas $ain_tableh $ain_tablef fetch the templates:

eval('$ain_tableh .= "' . fetch_template('ain_tableh') . '";');
eval('$ain_tablef .= "' . fetch_template('ain_tablef') . '";');

I also try using fetch_template('ain_tablef') in the str_replace command but it's the same
the template always read the last variable in the plugin no matter if there is (if)s or not


hope it's clear to find where is the problem :)

thanks for your response

Lynne
09-19-2009, 02:35 PM
The way things are written, all three variables could be non-zero (I would guess) and so you end up going through each if statement and they write over each other (in each you set $ain_id to something).

If all you are doing is placing something at the beginning or end of the navbar, why don't you just append it instead of using str_replace? (something like $navbar = $navbar . $ain_tableh . $ain_tablef)

al3bed
09-19-2009, 04:05 PM
I see.. if all three variables non-zero they write over each other
so what should I do to execute the code after each if statement before get ride of it?

it's not always placing at the beginning or end of the navbar

Lynne
09-19-2009, 04:22 PM
Since I don't know what you are doing, or what your thinking is, I really can't recommend anything else to do. Sometimes it helps to write out what you want in english and write out all the logic involved and then write your conditions afterwards.