PDA

View Full Version : No results showing


HS2005
04-03-2009, 07:27 PM
I want to select thread names but i do not get any results. I know my query isn't right.
But i would like to know what i am doing wrong.

In PHPMYadmin:

SELECT *
FROM `(TABLE PREFIX)`.`thread`
WHERE (
`title` LIKE '%a%'
)
LIMIT 0 , 30


And my code:
$itemcount = $db->query_first("
SELECT COUNT(`uid`) AS `itemcount`
FROM `" . TABLE_PREFIX . "thread` WHERE title LIKE '" . $letter . "%'");

Thanks :)

Lynne
04-03-2009, 07:34 PM
Maybe:

$itemcount = $db->query_first("
SELECT COUNT(uid) AS itemcount
FROM " . TABLE_PREFIX . "thread WHERE title LIKE '" . $letter . "%'");

HS2005
04-03-2009, 08:20 PM
Thanks for the fast reply.
I still don't see anything so my error must be somewhere else.

I want to display all the threads and select them by letter doing:
url/page.php?do=alphasearch&ltr=A

I made a thread with the title aaaaaa for example :)
Any suggestions? :)

Lynne
04-03-2009, 08:30 PM
Well, all that does is get a count ($itemcount[itemcount]). Are you saying you aren't getting a count? Perhaps post more of your code along with the template part that spits it out.

HS2005
04-03-2009, 08:45 PM
Indeed true :)

This is my page called page.php along with the code:

<?php

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

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'Page'); // change this depending on your filename

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array(

);

// get special data templates from the datastore
$specialtemplates = array(

);

// pre-cache templates used by all actions
$globaltemplates = array(
'alphamenu',
);

// pre-cache templates used by specific actions
$actiontemplates = array(

);

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

// ################################################## #####################
// ######################## START MAIN SCRIPT ############################
// ################################################## #####################

$navbits = array();
$navbits[$parent] = 'alphamenu';

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('alphamenu') . '");');

if ($_REQUEST['do'] == 'alphamenu')
{

if(empty($_REQUEST['ltr']))
{
eval(standard_error(fetch_error('error_invalidurl' ))); // Error phrase for invalid url
}

$vbulletin->input->clean_gpc('g', 'ltr', TYPE_STR);
$letter=$db->escape_string($vbulletin->GPC['ltr']);

//****Beginning Page Navigation ***//
// Default page variables
$perpage = $vbulletin->input->clean_gpc('r', 'perpage', TYPE_UINT);
$pagenumber = $vbulletin->input->clean_gpc('r', 'pagenumber', TYPE_UINT);
// Count all log entries
$itemcount = $db->query_first("
SELECT COUNT(uid) AS itemcount
FROM " . TABLE_PREFIX . "thread WHERE title LIKE '" . $letter . "%'");

if ($itemcount['itemcount'] == 0) { // Show if recordset empty
$emptysearch=true; // With this, you can easily create a condition in the template to show NO ITEMS message
} // Show if recordset empty

// Make sure all these variables are cool
sanitize_pageresults($itemcount['itemcount'], $pagenumber, $perpage, 10, 25); //Change 8 to as many records you want to show per page
// Default lower and upper limit variables
$limitlower = ($pagenumber - 1) * $perpage + 1;
$limitupper = $pagenumber * $perpage;
if ($limitupper > $itemcount['itemcount'])
{
// Too many for upper limit
$limitupper = $itemcount['itemcount'];
if ($limitlower > $itemcount['itemcount'])
{
// Too many for lower limit
$limitlower = $itemcount['itemcount'] - $perpage;
}
}
if ($limitlower <= 0)
{
// Can't have negative or null lower limit
$limitlower = 1;
}

eval('$alphamenu .= "' . fetch_template('alphamenu') . '";'); //Use this line of code to show alphamenu in any sub-page you want. Then simply use $alphamenu variable in the associated template.

$query_Searchltr=$db->query_read("SELECT * from " . TABLE_PREFIX . "thread WHERE title LIKE '" . $letter . "%' LIMIT " . ($limitlower - 1) . ", $perpage"); //Change colname to the same column name you had set in the above count query

while ($search_result = $db->fetch_array($query_Searchltr))
{
$row_id=$search_result['uid'];
$row_name=$search_result['name'];
$row_class=$search_result['class'];
// and so on...
}
// Finally construct the page nav
$pagenav = construct_page_nav($pagenumber, $perpage, $itemcount['itemcount'], 'page.php?do=alphasearch' . $vbulletin->session->vars['sessionurl'] . '&amp;ltr=' . $letter);
//****End Page Navigation******//

$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
eval('print_output("' . fetch_template('mysearchbits') . '");'); //The main output prints on mysearchbits template, so create it and use variables defined within the while loop above for results
$db->free_result($query_Searchltr);
}

?>


and then the template:


$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle] - Powered by TheDarkPrince</title>
$headinclude
</head>
<body>
$header
$navbar
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
<td> <font color="orange">SD</font></td>
</tr>
<br>
<tr>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=A">A</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=B">B</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=C">C</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=D">D</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=E">E</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=F">F</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=G">G</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=H">H</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=I">I</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=J">J</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=K">K</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=L">L</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=M">M</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=N">N</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=O">O</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=P">P</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=Q">Q</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=R">R</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=S">S</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=T">T</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=U">U</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=V">V</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=W">W</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=X">X</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=Y">Y</a></td>
<td class="alt2" width="3%"><a href="page.php?do=alphasearch&amp;ltr=Z">Z</a></td>

</tr>

</table>

$footer
</body>
</html>

Lynne
04-03-2009, 08:48 PM
You need to eval your template, alphamenu, *after* you define any variables you want to use in it. And, you can't eval it twice. Try removing this line (after the eval of the navbar):
eval('print_output("' . fetch_template('alphamenu') . '");');

HS2005
04-03-2009, 08:59 PM
Oke i removed it, but then i get a blank page, where do i need to eval the template alphamenu? :)

Lynne
04-03-2009, 09:07 PM
Well, you've got some weird things going on. I assume that the template you posted is your alphamenu template, so the line I had you remove, should actually go right above the ?> . However, you also are evaling the template right above the line that starts with "$query_Searchltr". And then you are also evaling mysearchbits for some reason. And then nowhere in your template are you using any variable/information that you are defining in the php code. I really can't tell what you are doing in your code.

HS2005
04-03-2009, 09:13 PM
true my template is called "alphamenu".
i placed the code
eval('print_output("' . fetch_template('alphamenu') . '");');
above ?>

And i also placed $alphamenu in the template now.
is that all correct?

Lynne
04-03-2009, 09:26 PM
I doubt it. You can't define $alphamenu as being that evaled template and then place it in the same template. That doesn't make any sense.

HS2005
04-03-2009, 09:29 PM
hmm oke :) So what do you advice in orde to show the results ?:)

Lynne
04-03-2009, 09:39 PM
I would start with getting a basic page, with the template, up and showing something. Then slowly add in the code/queries and get each thing working step-by-step.