Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

display Similar Products in rows


thecybertouch

Recommended Posts

Posted

Hi I am having problems displaying similar products in rows other than columns. Please Help, i am getting desperate. At present i am displaying similar items on the products_info.php page. But they are listed in a column, i would prefer them to be listed horizontally in row with 3 columns wide.

 

I am new to oscommerce and it is a great solutio but i'm totally at your mercy, please help.

 

My code is

 

<?php

/*

$Id: similar_products.php,v 1.0 2004/06/06 jck Exp $

Based on whats_new.php,v 1.31 by hpdl

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 2004 osCommerce

 

Released under the GNU General Public License

*/

 

 

// Set the sort order for the display

switch(SIMILAR_PRODUCTS_ORDER){

case 'Random':

$sort_order = 'RAND() ';

break;

case 'Products ID':

$sort_order = 'p.products_id ';

break;

case 'Model Number':

$sort_order = 'p.products_model ';

break;

case 'Price':

$sort_order = 'p.products_price ';

break;

case 'Date Added':

$sort_order = 'p.products_date_added ';

break;

case 'Last Modified':

$sort_order = 'p.products_last_modified ';

break;

case 'Products Ordered':

$sort_order = 'p.products_ordered ';

break;

case 'Products Name':

$sort_order = 'pd.products_name ';

break;

case 'Products Viewed':

$sort_order = 'pd.products_viewed ';

break;

default:

$sort_order = 'RAND() ';

} // switch

 

switch(SIMILAR_PRODUCTS_SORT_ORDER){

case 'Ascending':

$sort_order .= 'asc';

break;

case 'Descending':

$sort_order .= 'desc';

break;

default:

$sort_order .= 'asc';

} // switch

 

// Find the id # of the category that the current product is in

$category_query = tep_db_query("select categories_id

from " . TABLE_PRODUCTS_TO_CATEGORIES . "

where products_id = '" . (int)$_GET['products_id'] . "'"

);

$category = tep_db_fetch_array($category_query);

$category_id = $category['categories_id'];

 

// Count prods in category; if less than 2 dont display (removes empty infobox from pages)

$product_count_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p,

" . TABLE_PRODUCTS_DESCRIPTION . " pd,

" . TABLE_PRODUCTS_TO_CATEGORIES . " pc

where p.products_id = pc.products_id

and p.products_id = pd.products_id

and p.products_id != '" . (int)$_GET['products_id'] . "'

and p.products_status = '1'

and pc.categories_id = '" . (int)$category_id . "'

and pd.language_id = '". (int)$languages_id ."'"

);

$product_count = tep_db_fetch_array($product_count_query);

 

// if less than total similar prods displayed exist in current category, dont display (empty) infobox

if ($product_count['total'] >= MAX_SIMILAR_PRODUCTS) {

// Select the other products in the same category

$products_query = tep_db_query("select p.products_id,

p.products_image,

p.products_price,

p.products_model,

pd.products_name,

p.products_tax_class_id

from " . TABLE_PRODUCTS . " p,

" . TABLE_PRODUCTS_DESCRIPTION . " pd,

" . TABLE_PRODUCTS_TO_CATEGORIES . " pc

where p.products_id = pc.products_id

and p.products_id = pd.products_id

and p.products_id != '" . (int)$_GET['products_id'] . "'

and p.products_status = '1'

and pc.categories_id = '" . (int)$category_id . "'

and pd.language_id = '" . (int)$languages_id . "'

order by " . $sort_order . "

limit " . MAX_SIMILAR_PRODUCTS

);

// Write the output containing each of the products

$products_string = '';

$count_products = 0;

while ($products = tep_db_fetch_array($products_query)) {

if ($products['products_id'] != $_GET['products_id']) {

$products_string .= '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">';

$products_string .= tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);

$products_string .= '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">';

if (SIMILAR_PRODUCTS_SHOW_MODEL == 'true' && tep_not_null($products['products_model'])) {

$products_string .= $products['products_model'] . '<br>';

}

if ((SIMILAR_PRODUCTS_SHOW_NAME == 'true') && tep_not_null($products['products_name'])) {

$products_string .= $products['products_name'] . '<br>';

}

if (SIMILAR_PRODUCTS_SHOW_PRICE == 'true') {

#$products_string .= $currencies->display_price($products['products_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) . '<br>';

$products_string .= $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])) . '<br>';

}

$products_string .= '</a><br>';

$count_products++;

}

}

 

?>

<!-- similar_products //-->

<tr>

<td>

<?php

 

$info_box_contents = array();

$info_box_contents[] = array('text' => BOX_HEADING_SIMILAR_PRODUCTS);

 

new infoBoxHeading($info_box_contents, false, false);

 

$info_box_contents = array();

$info_box_contents[] = array('align' => 'center',

'text' => $products_string

);

 

new infoBox($info_box_contents);

?>

</td>

</tr>

<?

} // END PROD TOTAL (WITHIN CURRENT CATEGORY) CHECK

?>

<!-- similar_products_eof //-->

Posted

Have i offended anyone, why wont anyone reply to me?? I am new to this fantastic tool, and am nearly finished a site but i am stuck on this one little thing. Please Please, i am on my knees, i need help. I just want to be able to list other products of the sae manufacturer below a single product view. I would have thought this weould have been relativley simple for some of you guys. Please help.

 

Thanks

 

Andy

Posted

Don't know the contrib so far, but from what I can see, you need to add some code to the products_info.php.

 

The file you've listed only creates a table row for an existing table in the file mentioned above. So you got to alter the table the way it has three columns and create some code to fill the columns in an appropriate way.

Posted

Thanks for replying. Much appreciated. Any pointers on how i would create the 3 columns? Have you any sample code as per your suggestion.. I am a complete noob so forgive me!

 

Thanks again

Archived

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

×
×
  • Create New...