Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

1064 SQL Syntax Error Help needed!


whitesosa

Recommended Posts

Posted

Ok so here is my site: http://justbprom.com/store/

 

When I click a category with products in it I get this 1064 SQL error:

 

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-0,' at line 1

 

select p.products_image, pd.products_name, p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '25' order by pd.products_name limit -0,

 

[TEP STOP]

 

I really need your guys/gals help here! Thanks a million!!!!

Posted

limit -0

Mysql 5 onwords a -ve value is not allowed.

 

so instead of limit -0 it should be limit 0

 

Satish

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

Satish, what file am I looking for this in?

 

I checked the /admin/includes/classes/split_page_results.php and did not find a -0

Posted

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

 

$this->sql_query .= " limit " . max($offset, 0) . ", " . $this->number_of_rows_per_page;

 

this max($offset, 0) is what is needed.

 

Satish

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

Paste upit split class code.

 

Satish

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

Ok here is admin/includes/classes/

 

<?php

/*

$Id: split_page_results.php 1739 2007-12-20 00:52:16Z hpdl $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2002 osCommerce

 

Released under the GNU General Public License

*/

 

class splitPageResults {

function splitPageResults(&$current_page_number, $max_rows_per_page, &$sql_query, &$query_num_rows) {

if (empty($current_page_number)) $current_page_number = 1;

 

$pos_to = strlen($sql_query);

$pos_from = strpos($sql_query, ' from', 0);

 

$pos_group_by = strpos($sql_query, ' group by', $pos_from);

if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by;

 

$pos_having = strpos($sql_query, ' having', $pos_from);

if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having;

 

$pos_order_by = strpos($sql_query, ' order by', $pos_from);

if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by;

 

$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'];

 

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

if ($current_page_number > $num_pages) {

$current_page_number = $num_pages;

}

$offset = ($max_rows_per_page * ($current_page_number - 1));

if ($offset < 0)

{

$offset = 0 ;

}

$sql_query .= " limit " . max($offset, 0) . ", " . $max_rows_per_page;

}

 

function display_links($query_numrows, $max_rows_per_page, $max_page_links, $current_page_number, $parameters = '', $page_name = 'page') {

global $PHP_SELF;

 

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

 

// calculate number of pages needing links

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

 

$pages_array = array();

for ($i=1; $i<=$num_pages; $i++) {

$pages_array[] = array('id' => $i, 'text' => $i);

}

 

if ($num_pages > 1) {

$display_links = tep_draw_form('pages', basename($PHP_SELF), '', 'get');

 

if ($current_page_number > 1) {

$display_links .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number - 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_PREV . '</a>  ';

} else {

$display_links .= PREVNEXT_BUTTON_PREV . '  ';

}

 

$display_links .= sprintf(TEXT_RESULT_PAGE, tep_draw_pull_down_menu($page_name, $pages_array, $current_page_number, 'onChange="this.form.submit();"'), $num_pages);

 

if (($current_page_number < $num_pages) && ($num_pages != 1)) {

$display_links .= '  <a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number + 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_NEXT . '</a>';

} else {

$display_links .= '  ' . PREVNEXT_BUTTON_NEXT;

}

 

if ($parameters != '') {

if (substr($parameters, -1) == '&') $parameters = substr($parameters, 0, -1);

$pairs = explode('&', $parameters);

while (list(, $pair) = each($pairs)) {

list($key,$value) = explode('=', $pair);

$display_links .= tep_draw_hidden_field(rawurldecode($key), rawurldecode($value));

}

}

 

$display_links .= tep_hide_session_id() . '</form>';

} else {

$display_links = sprintf(TEXT_RESULT_PAGE, $num_pages, $num_pages);

}

 

return $display_links;

}

 

function display_count($query_numrows, $max_rows_per_page, $current_page_number, $text_output) {

$to_num = ($max_rows_per_page * $current_page_number);

if ($to_num > $query_numrows) $to_num = $query_numrows;

$from_num = ($max_rows_per_page * ($current_page_number - 1));

if ($to_num == 0) {

$from_num = 0;

} else {

$from_num++;

}

 

return sprintf($text_output, $from_num, $to_num, $query_numrows);

}

}

?>

Posted

Here is includes/classes/

 

<?php

/*

$Id: split_page_results.php 1739 2007-12-20 00:52:16Z hpdl $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 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 " . max($offset, 0) . ", " . $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);

}

}

?>

Posted

$sql_query .= " limit " . max($offset, 0) . ", " . $max_rows_per_page;

replace with

$sql_query .= " limit " .abs( max($offset, 0)) . ", " . $max_rows_per_page;

 

should do.

 

Satish

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

Same error. I don't know how this happened... the store worked fine for over a year. I'm guessing my host upgraded MySQL or PHP ?

 

Any other thoughts how to solve this?

 

I will gladly send you some paypal $ if you can help me get this sorted out...

Posted

Uh, Satish, max($offset, 0) can't return a value less than 0 (negative), so abs() won't do a thing. That said, I have no idea where the minus sign came from originally. I wonder if this is the correct code that's producing the error? If it is, the problem is that $this->number_of_rows_per_page is not defined for some reason.

Posted

Yes thanks for pointing.

 

I feel somewhere this - is getting associated which is resulted in Mysql error.

 

 

Satish

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

also try changing this

if ($to_num == 0) {

$from_num = 0;

 

to

 

if ($to_num <= 0) {

$from_num = 0;

Ask/Skype for Free osCommerce value addon/SEO suggestion tips for your site.

 

Check My About US For who am I and what My company does.

Posted

The error was in the admin side of my store. Somehow the results per page value got erased. I set it to 30 and now good to go. Thanks for the help guys!!!

Archived

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

×
×
  • Create New...