Tycoon Talk
Become a Big fish!
The number 1 forum for online business!
Post topics, ask questions, share your knowledge.
Tycoon Talk is part of Freelancer.com - find skilled workers online at a fraction of the cost.

PHP Forum


You are currently viewing our PHP Forum as a guest. Please register to participate.
Login



Freelance Jobs

Reply
Error when doing SEARCH page ?
Old 12-31-2009, 07:59 AM Error when doing SEARCH page ?
Junior Talker

Posts: 1
Trades: 0
I create more 3 files called config1.php, common1.php and database1.php respectively in order to test. All of them have the same code from config.php, common.php and database.php

next, I use include function to called config1 file (config1.php) in search.php and remove sesstion_start() in config1.php file, put the session_start function in database1.php and common1.php following the advise, then test:


http://i.imagehost.org/0127/search_code5.jpg

The error message said that I do not need the sesstion_start() in both database1.php and common1.php, so I remmove the function. Finally, there is no error message when I test :


http://f.imagehost.org/0178/search_fix1.jpg

But error paging is still appearing, when I click on page 2 for example, the page turns out nothing again:


http://i.imagehost.org/0725/search_error1.jpg

I noticed that the address bar which is

is missing search value, so address bar shoud show the link:

How can I add the search value after http://yoongda.com/search.php?page=2& such as search=a ?

this is my common1.php which contains paging function.

PHP Code:
<?php
/*
    Contain the common functions 
    required in shop and admin pages
*/
require_once 'config1.php';
require_once 
'database1.php';

/*
    Make sure each key name in $requiredField exist
    in $_POST and the value is not empty
*/
function checkRequiredPost($requiredField) {
    
$numRequired count($requiredField);
    
$keys        array_keys($_POST);
    
    
$allFieldExist  true;
    for (
$i 0$i $numRequired && $allFieldExist$i++) {
        if (!
in_array($requiredField[$i], $keys) || $_POST[$requiredField[$i]] == '') {
            
$allFieldExist false;
        }
    }
    
    return 
$allFieldExist;
}

function 
getShopConfig()
{
    
// get current configuration
    
$sql "SELECT sc_name, sc_address, sc_phone, sc_email, sc_shipping_cost, sc_order_email, cy_symbol 
            FROM tbl_shop_config sc, tbl_currency cy
            WHERE sc_currency = cy_id"
;
    
$result dbQuery($sql);
    
$row    dbFetchAssoc($result);

    if (
$row) {
        
extract($row);
    
        
$shopConfig = array('name'           => $sc_name,
                            
'address'        => $sc_address,
                            
'phone'          => $sc_phone,
                            
'email'          => $sc_email,
                    
'sendOrderEmail' => $sc_order_email,
                            
'shippingCost'   => $sc_shipping_cost,
                            
'currency'       => $cy_symbol);
    } else {
        
$shopConfig = array('name'           => '',
                            
'address'        => '',
                            
'phone'          => '',
                            
'email'          => '',
                    
'sendOrderEmail' => '',
                            
'shippingCost'   => '',
                            
'currency'       => '');    
    }

    return 
$shopConfig;                        
}

function 
displayAmount($amount)
{
    global 
$shopConfig;
    return 
$shopConfig['currency'] . number_format($amount);
}

/*
    Join up the key value pairs in $_GET
    into a single query string
*/
function queryString()
{
    
$qString = array();
    
    foreach(
$_GET as $key => $value) {
        if (
trim($value) != '') {
            
$qString[] = $key'=' trim($value);
        } else {
            
$qString[] = $key;
        }
    }
    
    
$qString implode('&'$qString);
    
    return 
$qString;
}

/*
    Put an error message on session 
*/
function setError($errorMessage)
{
    if (!isset(
$_SESSION['plaincart_error'])) {
        
$_SESSION['plaincart_error'] = array();
    }
    
    
$_SESSION['plaincart_error'][] = $errorMessage;

}

/*
    print the error message
*/
function displayError()
{
    if (isset(
$_SESSION['plaincart_error']) && count($_SESSION['plaincart_error'])) {
        
$numError count($_SESSION['plaincart_error']);
        
        echo 
'<table id="errorMessage" width="550" align="center" cellpadding="20" cellspacing="0"><tr><td>';
        for (
$i 0$i $numError$i++) {
            echo 
'• ' $_SESSION['plaincart_error'][$i] . "<br>\r\n";
        }
        echo 
'</td></tr></table>';
        
        
// remove all error messages from session
        
$_SESSION['plaincart_error'] = array();
    }
}

/**************************
    Paging Functions
***************************/

function getPagingQuery($sql$itemPerPage 10)
{
    if (isset(
$_GET['page']) && (int)$_GET['page'] > 0) {
        
$page = (int)$_GET['page'];
    } else {
        
$page 1;
    }
    
    
// start fetching from this row number
    
$offset = ($page 1) * $itemPerPage;
    
    return 
$sql " LIMIT $offset$itemPerPage";
}

/*
    Get the links to navigate between one result page to another.
    Supply a value for $strGet if the page url already contain some
    GET values for example if the original page url is like this :
    
    http://www.yoongda.com/index.php?c=12
    
    use "c=12" as the value for $strGet. But if the url is like this :
    
    http://yoongda.com/index.php
    
    then there's no need to set a value for $strGet
    
    
*/
function getPagingLink($sql$itemPerPage 10$strGet '')
{
    
$result        dbQuery($sql);
    
$pagingLink    '';
    
$totalResults  dbNumRows($result);
    
$totalPages    ceil($totalResults $itemPerPage);
    
    
// how many link pages to show
    
$numLinks      10;

        
    
// create the paging links only if we have more than one page of results
    
if ($totalPages 1) {
    
        
$self 'http://' $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ;
        

        if (isset(
$_GET['page']) && (int)$_GET['page'] > 0) {
            
$pageNumber = (int)$_GET['page'];
        } else {
            
$pageNumber 1;
        }
        
        
// print 'previous' link only if we're not
        // on page one
        
if ($pageNumber 1) {
            
$page $pageNumber 1;
            if (
$page 1) {
                
$prev " <a href=\"$self?page=$page&$strGet/\">[Prev]</a> ";
            } else {
                
$prev " <a href=\"$self?$strGet\">[Prev]</a> ";
            }    
                
            
$first " <a href=\"$self?$strGet\">[First]</a> ";
        } else {
            
$prev  ''// we're on page one, don't show 'previous' link
            
$first ''// nor 'first page' link
        
}
    
        
// print 'next' link only if we're not
        // on the last page
        
if ($pageNumber $totalPages) {
            
$page $pageNumber 1;
            
$next " <a href=\"$self?page=$page&$strGet\">[Next]</a> ";
            
$last " <a href=\"$self?page=$totalPages&$strGet\">[Last]</a> ";
        } else {
            
$next ''// we're on the last page, don't show 'next' link
            
$last ''// nor 'last page' link
        
}

        
$start $pageNumber - ($pageNumber $numLinks) + 1;
        
$end   $start $numLinks 1;        
        
        
$end   min($totalPages$end);
        
        
$pagingLink = array();
        for(
$page $start$page <= $end$page++)    {
            if (
$page == $pageNumber) {
                
$pagingLink[] = $page ";   // no need to create a link to current page
            
} else {
                if (
$page == 1) {
                    
$pagingLink[] = " <a href=\"$self?$strGet\">$page</a> ";
                } else {    
                    
$pagingLink[] = " <a href=\"$self?page=$page&$strGet\">$page</a> ";
                }    
            }
    
        }
        
        
$pagingLink implode(' | '$pagingLink);
        
        
// return the page navigation link
        
$pagingLink $first $prev $pagingLink $next $last;
    }
    
    return 
$pagingLink;
}
?>
database1.php

PHP Code:
<?php
require_once 'config1.php';

$dbConn mysql_connect ($dbHost$dbUser$dbPass) or die ('MySQL connect failed. ' mysql_error());
mysql_select_db($dbName) or die('Cannot select database. ' mysql_error());

function 
dbQuery($sql)
{
    
$result mysql_query($sql) or die(mysql_error());
    
    return 
$result;
}

function 
dbAffectedRows()
{
    global 
$dbConn;
    
    return 
mysql_affected_rows($dbConn);
}

function 
dbFetchArray($result$resultType MYSQL_NUM) {
    return 
mysql_fetch_array($result$resultType);
}

function 
dbFetchAssoc($result)
{
    return 
mysql_fetch_assoc($result);
}

function 
dbFetchRow($result
{
    return 
mysql_fetch_row($result);
}

function 
dbFreeResult($result)
{
    return 
mysql_free_result($result);
}

function 
dbNumRows($result)
{
    return 
mysql_num_rows($result);
}

function 
dbSelect($dbName)
{
    return 
mysql_select_db($dbName);
}

function 
dbInsertId()
{
    return 
mysql_insert_id();
}
?>
config1.php

[code]
PHP Code:
<?php
ini_set
('display_errors''On');
//ob_start("ob_gzhandler");
error_reporting(E_ALL);

// database connection config
$dbHost 'yoongda.db.xxxxx.hostedresource.com';
$dbUser 'yoongda';
$dbPass 'xxxxx';
$dbName 'yoongda';

// setting up the web root and server root for
// this shopping cart application
$thisFile str_replace('\\''/'__FILE__);
$docRoot $_SERVER['DOCUMENT_ROOT'];

$webRoot  str_replace(array($docRoot'library/config1.php'), ''$thisFile);
$srvRoot  str_replace('library/config1.php'''$thisFile);

define('WEB_ROOT'$webRoot);
define('SRV_ROOT'$srvRoot);

// these are the directories where we will store all
// category and product images
define('CATEGORY_IMAGE_DIR''images/category/');
define('PRODUCT_IMAGE_DIR',  'images/product/');

// some size limitation for the category
// and product images

// all category image width must not 
// exceed 75 pixels
define('MAX_CATEGORY_IMAGE_WIDTH'75);

// do we need to limit the product image width?
// setting this value to 'true' is recommended
define('LIMIT_PRODUCT_WIDTH',     true);

// maximum width for all product image
define('MAX_PRODUCT_IMAGE_WIDTH'300);

// the width for product thumbnail
define('THUMBNAIL_WIDTH',         75);

if (!
get_magic_quotes_gpc()) {
    if (isset(
$_POST)) {
        foreach (
$_POST as $key => $value) {
            
$_POST[$key] =  trim(addslashes($value));
        }
    }
    
    if (isset(
$_GET)) {
        foreach (
$_GET as $key => $value) {
            
$_GET[$key] = trim(addslashes($value));
        }
    }    
}

// since all page will require a database access
// and the common library is also used by all
// it's logical to load these library here
require_once 'database1.php';
require_once 
'common1.php';

// get the shop configuration ( name, addres, etc ), all page need it
$shopConfig getShopConfig();
?>
and my search page : search.php

PHP Code:
<form action="search.php" method="get">
<input name="search" type="text"/>
<input name="searchSubmit" type="submit" value="Search"/>
 </form>

<?php
      
// Get the search variable from URL

      
$var = @$_GET['search'] ;
      
$trimmed trim($var); //trim whitespace from the stored variable

    // check for an empty string and display a message.
    
if ($trimmed == "")
      {
      echo 
"<p>Please enter a search...</p>";
      exit;
      }

    
// check for a search parameter
    
if (!isset($var))
      {
      echo 
"<p>We dont seem to have a search parameter!</p>";
      exit;
      }

    
//connect to your database ** EDIT REQUIRED HERE **
    
include'library/config1.php';

    
// Build SQL Query 
    
$query "select * from tbl_product where pd_name like \"%$trimmed%\" order by pd_id"// EDIT HERE and specify your table and field names for the SQL query

    
$numresults=mysql_query($query);
    
$numrows=mysql_num_rows($numresults);

    
// If we have no results, offer a google search as an alternative

    
if ($numrows == 0)
      {
      echo 
"<h4>Results</h4>";
      echo 
"<p>Sorry, your search: &quot;" $trimmed "&quot; returned zero results</p>";

    
// google
    
echo "<p>Please, try again or <a href=\"http://www.google.com/search?search="
      
$trimmed "\" target=\"_blank\" title=\"Look up
      " 
$trimmed " on Google\">Click here</a> to try the
      search on google</p>"
;
      }

    
// next determine if s has been passed to script, if not use 0
      
if (empty($s)) {
      
$s=0;
      }

    
// display what the person searched for
    
echo "<p>You searched for: &quot;" $var "&quot;</p>";
    
?>
    
   <?php
if (!defined('WEB_ROOT')) {
    exit;
}

$productsPerRow 2;
$productsPerPage 4;

$sql "select * from tbl_product where pd_name like \"%$trimmed%\" order by pd_id";
$result     dbQuery(getPagingQuery($sql$productsPerPage));
$pagingLink getPagingLink($sql$productsPerPage);
$numProduct dbNumRows($result);

// the product images are arranged in a table. to make sure
// each image gets equal space set the cell width here
$columnWidth = (int)(100 $productsPerRow);
?>
<table width="100%" border="0" cellspacing="0" cellpadding="20">
<?php 
if ($numProduct ) {

    
$i 0;
    while (
$row dbFetchAssoc($result)) {
    
        
extract($row);
        if (
$pd_thumbnail) {
            
$pd_thumbnail WEB_ROOT 'images/product/' $pd_thumbnail;
        } else {
            
$pd_thumbnail WEB_ROOT 'images/no-image-small.png';
        }
    
        if (
$i $productsPerRow == 0) {
            echo 
'<tr>';
        }

        
// format how we display the price
        
$pd_price displayAmount($pd_price);
        
        echo 
"<td width=\"$columnWidth%\" align=\"center\"><a href=\"index.php?c=$cat_id&p=$pd_id"\"><img src=\"$pd_thumbnail\" border=\"0\" width=\"70\" height=\"100\" ><br>$pd_name</a><br>Price : $pd_price";

        
// if the product is no longer in stock, tell the customer
        
if ($pd_qty <= 0) {
            echo 
"<br>Out Of Stock";
        }
        
        echo 
"</td>\r\n";
    
        if (
$i $productsPerRow == $productsPerRow 1) {
            echo 
'</tr>';
        }
        
        
$i += 1;
    }
    
    if (
$i $productsPerRow 0) {
        echo 
'<td colspan="' . ($productsPerRow - ($i $productsPerRow)) . '">&nbsp;</td>';
    }
    
} else {
?>
    <tr><td width="100%" align="center" valign="center">No products in this category</td></tr>
<?php    
}    
?>
</table>
<p align="center"><?php echo $pagingLink?></p>
I have tried to put 'search = $var' on $strGet in common1.php but it not working.

How can I add the search value after http://yoongda.com/search.php?page=2& such as search=a ?

Looking for fixing the code

Last edited by pvhung; 12-31-2009 at 08:48 AM..
pvhung is offline
Reply With Quote
View Public Profile
 
 
Register now for full access!
Reply     « Reply to Error when doing SEARCH page ?
 

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off





   
RSS Feed  Feeds: RSS   JS   XML
RSS Feed  Feeds for this forum: RSS   JS   XML



Page generated in 0.09739 seconds with 12 queries