Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Split Page Results Error


Mary-at-Milton

Recommended Posts

Hi,

I have the following error when trying to look at "My Order History" when logged in. B) Can someone please help ?

 

Warning: Division by zero in /homepages/45/d87589151/htdocs/miltongems/catalog/includes/classes/split_page_results.php on line 59

This is what my split_page_results.php file looks like.

 

<?php
/*
 $Id: split_page_results.php,v 1.15 2003/06/09 22:35:34 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 class splitPageResults {
   var $sql_query, $number_of_rows, $current_page_number, $number_of_pages, $number_of_rows_per_page, $page_name;

/* class constructor */
   function splitPageResults($query, $max_rows, $count_key = '*', $page_holder = 'page') {
     global $HTTP_GET_VARS, $HTTP_POST_VARS;

     $this->sql_query = $query;
     $this->page_name = $page_holder;

     if (isset($HTTP_GET_VARS[$page_holder])) {
       $page = $HTTP_GET_VARS[$page_holder];
     } elseif (isset($HTTP_POST_VARS[$page_holder])) {
       $page = $HTTP_POST_VARS[$page_holder];
     } else {
       $page = '';
     }

     if (empty($page) || !is_numeric($page)) $page = 1;
     $this->current_page_number = $page;

     $this->number_of_rows_per_page = $max_rows;

     $pos_to = strlen($this->sql_query);
     $pos_from = strpos($this->sql_query, ' from', 0);

     $pos_group_by = strpos($this->sql_query, ' group by', $pos_from);
     if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by;

     $pos_having = strpos($this->sql_query, ' having', $pos_from);
     if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having;

     $pos_order_by = strpos($this->sql_query, ' order by', $pos_from);
     if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by;

     if (strpos($this->sql_query, 'distinct') || strpos($this->sql_query, 'group by')) {
       $count_string = 'distinct ' . tep_db_input($count_key);
     } else {
       $count_string = tep_db_input($count_key);
     }

     $count_query = tep_db_query("select count(" . $count_string . ") as total " . substr($this->sql_query, $pos_from, ($pos_to - $pos_from)));
     $count = tep_db_fetch_array($count_query);

     $this->number_of_rows = $count['total'];

     $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page);

     if ($this->current_page_number > $this->number_of_pages) {
       $this->current_page_number = $this->number_of_pages;
     }

     $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

     $this->sql_query .= " limit " . $offset . ", " . $this->number_of_rows_per_page;
   }

/* class functions */

// display split-page-number-links
   function display_links($max_page_links, $parameters = '') {
     global $PHP_SELF, $request_type;

     $display_links_string = '';

     $class = 'class="pageResults"';

     if (tep_not_null($parameters) && (substr($parameters, -1) != '&')) $parameters .= '&';

// previous button - not displayed on first page
     if ($this->current_page_number > 1) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . ($this->current_page_number - 1), $request_type) . '" class="pageResults" title=" ' . PREVNEXT_TITLE_PREVIOUS_PAGE . ' "><u>' . PREVNEXT_BUTTON_PREV . '</u></a>  ';

// check if number_of_pages > $max_page_links
     $cur_window_num = intval($this->current_page_number / $max_page_links);
     if ($this->current_page_number % $max_page_links) $cur_window_num++;

     $max_window_num = intval($this->number_of_pages / $max_page_links);
     if ($this->number_of_pages % $max_page_links) $max_window_num++;

// previous window of pages
     if ($cur_window_num > 1) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . (($cur_window_num - 1) * $max_page_links), $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_PREV_SET_OF_NO_PAGE, $max_page_links) . ' ">...</a>';

// page nn button
     for ($jump_to_page = 1 + (($cur_window_num - 1) * $max_page_links); ($jump_to_page <= ($cur_window_num * $max_page_links)) && ($jump_to_page <= $this->number_of_pages); $jump_to_page++) {
       if ($jump_to_page == $this->current_page_number) {
         $display_links_string .= ' <b>' . $jump_to_page . '</b> ';
       } else {
         $display_links_string .= ' <a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . $jump_to_page, $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_PAGE_NO, $jump_to_page) . ' "><u>' . $jump_to_page . '</u></a> ';
       }
     }

// next window of pages
     if ($cur_window_num < $max_window_num) $display_links_string .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $this->page_name . '=' . (($cur_window_num) * $max_page_links + 1), $request_type) . '" class="pageResults" title=" ' . sprintf(PREVNEXT_TITLE_NEXT_SET_OF_NO_PAGE, $max_page_links) . ' ">...</a> ';

// next button
     if (($this->current_page_number < $this->number_of_pages) && ($this->number_of_pages != 1)) $display_links_string .= ' <a href="' . tep_href_link(basename($PHP_SELF), $parameters . 'page=' . ($this->current_page_number + 1), $request_type) . '" class="pageResults" title=" ' . PREVNEXT_TITLE_NEXT_PAGE . ' "><u>' . PREVNEXT_BUTTON_NEXT . '</u></a> ';

     return $display_links_string;
   }

// display number of total products found
   function display_count($text_output) {
     $to_num = ($this->number_of_rows_per_page * $this->current_page_number);
     if ($to_num > $this->number_of_rows) $to_num = $this->number_of_rows;

     $from_num = ($this->number_of_rows_per_page * ($this->current_page_number - 1));

     if ($to_num == 0) {
       $from_num = 0;
     } else {
       $from_num++;
     }

     return sprintf($text_output, $from_num, $to_num, $this->number_of_rows);
   }
 }
?>

 

Any help would be appreciated. Thanks!

Mary-Ann

Chief Cook and Bottlewasher

Jack-of-All-Trades

Running 2.2MS2

Link to comment
Share on other sites

Hi,

 

i got that kind of problem wehn using the Coupon Contribution.

I added the following line to my split_page_result.php:

 

$reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from)));

$reviews_count = tep_db_fetch_array($reviews_count_query);

$query_num_rows = $reviews_count['total'];

 

//Line added

if ($query_num_rows == 0) $query_num_rows = 1;

// End Line added

 

$num_pages = ceil($query_num_rows / $max_rows_per_page);

if ($current_page_number > $num_pages) {

$current_page_number = $num_pages;

 

I hope that helps....

 

Cheers

 

 

Guido

Link to comment
Share on other sites

Alex R:

 

THanks for your reply. Did you only change the admin/classes/split_page_results.php file ? I have tried that and I still get the same error message pointing to the catalog/classes/spli_page_results.php file.

Mary-Ann

Chief Cook and Bottlewasher

Jack-of-All-Trades

Running 2.2MS2

Link to comment
Share on other sites

Hi,

 

i only changed it in the ccatalog\includes\classes\split_page_results.php.

 

ope it will work for you too....

 

 

Cheers

 

 

Guido

Link to comment
Share on other sites

Hi Mary-Ann,

 

I changed a variable to a fixed integer in the line:

 

$this->number_of_rows_per_page = $max_rows;

 

to

 

$this->number_of_rows_per_page = 5;

 

just check it out. And: a file "catalog/classes/spli_page_results.php " shouldn`t exist. Do you really find it?

 

CU, dj

Link to comment
Share on other sites

Hello

 

Sorry, my previous post said

catalog/classes/spli_page_results.php
this should read catalog/includes/classes/split_page_results.php.

 

I have two files called 'split_page_results.php'

 

One is in catalog/includes/classes

 

and the other one is in

 

catalog/admin/includes/classes

 

The one that I changed according to Guido's code was located in catalog/admin/includes/classes because it is the only file that the code actually matches up. There is nowhere to put that code in the Catalog/includes/ file so I presumed he was talking about the catalog/admin/includes/ one.

B)

Mary-Ann

Chief Cook and Bottlewasher

Jack-of-All-Trades

Running 2.2MS2

Link to comment
Share on other sites

Yippee. Thanks djlounge

I changed the code as you said and IT WORKS.

 

So 2 files had to be changed. The catalog/includes/classes

and the catalog/admin/includes/classes

 

split_page_results.php

 

Now I hve another problem with German visitors getting error msgs. But I will post that into a new topic. Groan - it never ends. <_<

Mary-Ann

Chief Cook and Bottlewasher

Jack-of-All-Trades

Running 2.2MS2

Link to comment
Share on other sites

I saw your problem. there is no mainpage.php in your language directory. open the index_default.tpl.php, go to the line and change "mainpage.php" to "index.php" or "default.php" (depends on the milestone-version you are using). Which kind of template system you`re using? It seems that it was not written for your version.

 

You`ve got a great layout! Wow!

 

CU, dj

 

PS: I saw a few errors left: The boxheader-constants BOX_HEADING_CUSTOMER and BOX_HEADING_SECURITY are still undefined!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...