Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

error in products_listing.php


albundy

Recommended Posts

Posted

hi there,

 

i have problems with products_listing.php file which belongs to a template of monstertemplate. Everything works fine but if there are more then one page of products to show i get a blank page and the whole site hangs.

 

I have try to find the problem but can't find it. Maybe somebody here can look at the file and tell me what is wrong?

 

Thank you for your help

Marcel

 

source products_listing.php

<?php
/*
$Id: product_listing_col.php,v 1.1.1.1 2004/03/04 23:41:11 ccwjr Exp $
*/

$listing_sql = preg_replace('/pd\.products_name/i', 'pd.products_name, pd.products_description', $listing_sql);

$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id');

if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}
$list_box_contents = array();
if ($listing_split->number_of_rows > 0) {
$listing_query = tep_db_query($listing_split->sql_query);

$row = 0;
$column = 0;

// Eversun mod for sppp
// while ($listing = tep_db_fetch_array($listing_query)) {
// $rows++;
$no_of_listings = tep_db_num_rows($listing_query);

if(!tep_session_is_registered('sppc_customer_group_id')) {
$customer_group_id = '0';
} else {
$customer_group_id = $sppc_customer_group_id;
}

while ($_listing = tep_db_fetch_array($listing_query)) {
$listing[] = $_listing;
$list_of_prdct_ids[] = $_listing['products_id'];
}

$select_list_of_prdct_ids = "products_id = '".$list_of_prdct_ids[0]."' ";
if ($no_of_listings > 1) {
for ($n = 1; $n < count($list_of_prdct_ids); $n++) {
$select_list_of_prdct_ids .= "or products_id = '".$list_of_prdct_ids[$n]."' ";
}
}

// get all product prices for products with the particular customer_group_id
// however not necessary for customer_group_id = 0
if ($customer_group_id != '0') {
$pg_query = tep_db_query("select pg.products_id, customers_group_price as price from " . TABLE_PRODUCTS_GROUPS . " pg where (".$select_list_of_prdct_ids.") and pg.customers_group_id = '".$customer_group_id."' ");

// $no_of_pg_products = tep_db_num_rows($pg_query);
while ($pg_array = tep_db_fetch_array($pg_query)) {
$new_prices[] = array ('products_id' => $pg_array['products_id'], 'products_price' => $pg_array['price'], 'specials_new_products_price' => '', 'final_price' => $pg_array['price']);
}

for ($x = 0; $x < $no_of_listings; $x++) {
// replace products prices with those from customers_group table
if(!empty($new_prices)) {
for ($i = 0; $i < count($new_prices); $i++) {
if( $listing[$x]['products_id'] == $new_prices[$i]['products_id'] ) {
$listing[$x]['products_price'] = $new_prices[$i]['products_price'];
$listing[$x]['final_price'] = $new_prices[$i]['final_price'];
}
}
} // end if(!empty($new_prices)
$listing[$x]['specials_new_products_price'] = ''; // makes sure that a retail specials price doesn't carry over to another customer group
$listing[$x]['final_price'] = $listing[$x]['products_price']; // final price should not be the retail special price
} // end for ($x = 0; $x < $no_of_listings; $x++)
} // end if ($customer_group_id != '0')

// an extra query is needed for all the specials
$specials_query = tep_db_query("select products_id, specials_new_products_price from " . TABLE_SPECIALS . " where (".$select_list_of_prdct_ids.") and status = '1' and customers_group_id = '" .$customer_group_id. "'");
while ($specials_array = tep_db_fetch_array($specials_query)) {
$new_s_prices[] = array ('products_id' => $specials_array['products_id'], 'products_price' => '', 'specials_new_products_price' => $specials_array['specials_new_products_price'] , 'final_price' => $specials_array['specials_new_products_price']);
}

// add the correct specials_new_products_price and replace final_price
for ($x = 0; $x < $no_of_listings; $x++) {
if(!empty($new_s_prices)) {
for ($i = 0; $i < count($new_s_prices); $i++) {
if( $listing[$x]['products_id'] == $new_s_prices[$i]['products_id'] ) {
$listing[$x]['specials_new_products_price'] = $new_s_prices[$i]['specials_new_products_price'];
$listing[$x]['final_price'] = $new_s_prices[$i]['final_price'];
}
}
} // end if(!empty($new_s_prices)
} // end for ($x = 0; $x < $no_of_listings; $x++)

for ($x = 0; $x < $no_of_listings; $x++) {
$rows++;
// Eversun mod for spp
$product_contents = array();

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
$lc_align = '';
switch ($column_list[$col]) {

case 'PRODUCT_LIST_MODEL':
$lc_align = '';
// Eversun mod for spp
// $lc_text = ' ' . $listing['products_model'] . ' ';
// $lc_text = ' ' . $listing[$x]['products_model'] . ' ';
// Eversun mod for spp
break;

case 'PRODUCT_LIST_NAME':
$lc_align = '';
$lc_name = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '" class=ml2>' . $listing[$x]['products_name'] . '</a> ';
$lc_link = tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']);
break;

case 'PRODUCT_LIST_MANUFACTURER':
$lc_align = '';
$lc_manu = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a> ';
break;

case 'PRODUCT_LIST_PRICE':
$lc_align = 'right';
$pf->loadProduct($listing[$x]['products_id'],$languages_id);
$lc_price = preg_replace('/ /i', ' ', $pf->getPriceStringShort());
break;

case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$lc_qty = ' ' . $listing[$x]['products_quantity'] . ' ';
break;

case 'PRODUCT_LIST_WEIGHT':
$lc_align = 'right';
$lc_weight = ' ' . $listing[$x]['products_weight'] . ' ';
break;

case 'PRODUCT_LIST_IMAGE':
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_image = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,'align="left" style="margin:0px 10px 0px 0px "') . '</a>';
} else {
$lc_image = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT,'align="left" style="margin:0px 10px 0px 0px "') . '</a> ';
}
break;

case 'PRODUCT_LIST_BUY_NOW':
$lc_align = 'center';
$lc_buy_now = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing[$x]['products_id']) . '" class="margin5">' . tep_template_image_button('button_in_cart.gif', IMAGE_BUTTON_BUY_NOW) . '</a>';
break;
}
$product_contents[] = $lc_text;
}

$lc_text = implode('<br>', $product_contents);
$list_box_contents[$row][$column] = array('id' => $listing[$x]['products_id'],
'description' => $listing[$x]['products_description'],
'align' => 'center',
'params' => 'class="productListing-data"',
'name' => $lc_name,
'image' => $lc_image,
'price' => $lc_price,
'weight' => $lc_weight,
'buy_now' => $lc_buy_now,
'manu' => $lc_manu,
'qty' => $lc_qty,
'text' => $lc_text,
'link' => $lc_link);

$column ++;
if ($column >= COLUMN_COUNT) {
$row ++;
$column = 0;
}
}

echo '<table cellspacing=0 cellpadding=0 width=100%>';

while(list($row_id, $row) = each($list_box_contents)){
while(list($cell_id, $cell) = each($row)){


echo '<tr><td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>

<!--Products Image goes here//-->

<a href="' . $cell['link'] . '">' . $cell['image']. '</a>

</td>
<td><img alt="" src="'.DIR_WS_TEMPLATES . TEMPLATE_NAME.'/images/ch_r1.gif" style="margin:12px 4px 0 0;"></td>
<td><table border="0" cellpadding="0" cellspacing="0">
<tr><td class="deep">
<strong>

<!--Products Link goes here//-->

<a href="



' . $cell['link'] . '


">
<!--Products Name goes here//-->


'.$cell['name']. '



</a></strong><br><br style="line-height:5px;">

<!--Products Description goes here//-->

'.substr($cell['description'],0,25).'



<br><br style="line-height:9px;">
<b>

<!--Products Price goes here//-->

'.$cell['price'].'


</b><br><br style="line-height:9px;">

<!--Buttons go here SAME //-->



<a href="' . $cell['link'] . '" class="margin4" style="margin:0px 1px 0px 0px ">' . tep_image_button('small_view.gif') . '</a><a href="' . $cell['link']. 'action=buy_now' . '"style="margin-left:3px;">' .tep_image_button('button_in_cart.gif').'</a>



</td></tr>
</table></td>
</tr>
</table>




</td>
</tr>
<tr><td><img alt="" src="'.DIR_WS_TEMPLATES . TEMPLATE_NAME.'/images/spacer.gif" width="1" height="7"></td></tr>';

}
}

echo '</table>';

} else {
$list_box_contents = array();
$list_box_contents[0] = array('params' => 'class="productListing-odd"');
$list_box_contents[0] = array('params' => 'class="productListing-data"',
'text' => TEXT_NO_PRODUCTS);
new productListingBox($list_box_contents);
}
if ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td>
<td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td>
</tr>
</table>
<?php
}
?>

Posted

Its quite hard to look at the code and see where its going wrong, normally when I encounter a blank screen (meaning there is a bug) I usually got to my hosting company website admin and look for the "error logs" this should show where your website crashed (probably /index.php?) and the error it encountered. Usually for me its a missing or extra ' or "

 

I hope this helps

Posted
Its quite hard to look at the code and see where its going wrong, normally when I encounter a blank screen (meaning there is a bug) I usually got to my hosting company website admin and look for the "error logs" this should show where your website crashed (probably /index.php?) and the error it encountered. Usually for me its a missing or extra ' or "

 

I hope this helps

 

i just look into the error.log file but there is nothing only a complain the a picture not exist. The other strange thing that on my local server where i run easyphp under windows xp the error not exist.

Posted

albundy is running on CRE Loaded 6.0. The site is actually locking up any browser (which requires a relaunch :(). I have advised that he post his issue to the relevant forum.

 

jon

It's all just ones and zeros....

Archived

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

×
×
  • Create New...