select di una categoria specifica

Postate qui discussioni di carattere generale riguardo a problemi di installazione e configurazione di osCommerce

Moderatore: mod Generali

Rispondi
Avatar utente
maarlok
membro Baby
membro Baby
Messaggi: 61
Iscritto il: 10/01/2010, 16:24
Contatta:

select di una categoria specifica

Messaggio da maarlok »

Buongiorno, dovrei estrarre dal db i prodotti random presi da una sola categoria.
La contrib che ho trovato me li estrae a caso da tutte le categorie e non saprei come modificarla.
Credo nel comando select ma mi manca la conoscenza necessaria per intervenire e vorrei imparare.
Qualcuno saprebbe aiutarmi?
Posto il codice della contrib che dovrei modificare per maggiore chiarezza:
<?php
/*
$Id: random_pro.php,v 1.00 2007/01/31 - lonis.dk/cen

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

Copyright (c) 2007 oscommerce

Released under the GNU General Public License
*/
?>
<!-- random_pro_bof //-->
<?php
///////////////////////////////////////////////////
//////////////////// OPSÆTNING ////////////////////
// bemærkninger:
// opsætning kunne evt. viderebearbejdes til at kunne indtastes fra admin
// udeladelse af udvalgte categori_id kunne gøres smartere ved at det var muligt at kunne vælge en over-categori_id, fremfor alle de enkelte categori_id
// define('RND_HEAD_TEXT', 'Tekst i bjælke'); // burde defineres i de enkelte hovedsprogfiler, men denne metode gør installationen nemmere
//
// 1) filen(modulet) lægges i catalog\includes\modules
// 2) catalog\includes\filesnames.php tilføjes
// define('FILENAME_RANDOM_PRO', 'random_pro.php');
// 3) filen(modulet) kaldes fra catalog\index.php ved eksempelvis følgende ændring
// fra ... include(DIR_WS_MODULES . FILENAME_RANDOM_PRO) ...
// til ... include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS) ...
// x) alternativ ændres filnavnet til new_products.php og den gamle overskrives

$randomboxhead = true; // true = boxbjælke, false = kun en tynd ramme øverst
$randomboxheadleft = false; // venstre boxbjælke: false=kantet, true=rundt
$randomboxheadright = false; // højre boxbjælke: false=kantet, true=rundt

$randomcol = 4; // antal kolonner
$randomrow = 1; // antal rækker

$templates_display = 1; // skabelon
// default = produkter vises som i new_product
// 2 = produkter vises som box i box
$boxboxheadleft = false; // venstre boxboxbjælke: false=kantet, true=rundt
$boxboxheadright = false; // højre boxboxbjælke: false=kantet, true=rundt


define('NOT_CATEGORI', "('','','','','','','','','','')");
// varegrupper der ikke ønskes vist kan udelades,
// categori_id der indeholder undergrupper har ingen effekt, derfor skal "laveste" categori_id angives,
// define('NOT_CATEGORI', "('AA','BB','CC','DD','XX')");

switch ($language) {
case 'danish':
define('RND_HEAD_TEXT', 'Her er et udsnit af vores varesortiment');
case 'english':
define('RND_HEAD_TEXT', 'Products'); //change to you settings
case 'english':
define('RND_HEAD_TEXT', 'Produits en stock'); //change to you settings
case 'german':
define('RND_HEAD_TEXT', 'Tysk tekst ...');
case 'andet_sprog':
define('RND_HEAD_TEXT', 'Andet_sprog tekst ...');
default:
define('RND_HEAD_TEXT', 'Her er et udsnit af vores varesortiment');
break;
};

///////////////////////////////////////////////////
///////////////////////////////////////////////////

$randomdisplay = $randomcol * $randomrow;
$widthcol = (int)(100/$randomcol);
$bbhl = $boxboxheadleft ? 'corner_left.gif' : 'corner_right_left.gif';
$bbhr = $boxboxheadright ? 'corner_right.gif' : 'corner_right_left.gif';

$ok_products_query = tep_db_query("select distinct p.products_id, p.products_image, p.products_tax_class_id, if(s.status, s.specials_new_products_price, p.products_price) as products_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c where p.products_id = p2c.products_id and p2c.categories_id not IN " . NOT_CATEGORI . " and p.products_status = '1'");
$ok_products_row = tep_db_num_rows($ok_products_query);

if ($ok_products_row > 0) {

if ($randomboxhead) {
//$info_box_contents = array();
//$info_box_contents[] = array('text' => RND_HEAD_TEXT);
//new infoBoxHeading($info_box_contents, $randomboxheadleft, $randomboxheadright);
}

if ($ok_products_row < $randomdisplay) $randomdisplay = $ok_products_row;
$maxrandomtable = $randomdisplay;

$randomtable = array();
for ($c=0; $c<$maxrandomtable; $c++) {
$random=tep_rand($c,$ok_products_row-1);
$ok = (isset($randomtable[$random])) ? $randomtable[$random] : $random;
$randomtable[$random] = (isset($randomtable[$c])) ? $randomtable[$c] : $c;
$randomtable[$c] = $ok;
};

$row = 0;
$col = 0;
$info_box_contents = array();

for ($c=0; $c<$randomdisplay; $c++) {
tep_db_data_seek($ok_products_query, $randomtable[$c]);
$products = tep_db_fetch_array($ok_products_query);
$products['products_name'] = tep_get_products_name($products['products_id']);
switch ($templates_display) {
case 2:
$info_box_contents[$row][$col] = array('align' => 'center',
'params' => 'class="smallText" width="' . $widthcol . '%" valign="top"',
'text' =>'<table border="0" width="100%" cellspacing="1" cellpadding="3" class="customContentInfoBoxContents"><tr><td align="center">' .
'<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br>' . $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])) . '<br><br>' .
'<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a>  ' .
'</td></tr></table>');
break;
default:
$info_box_contents[$row][$col] = array('align' => 'center',
'params' => 'class="smallText" width="' . $widthcol . '%" valign="top"',
'text' => '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $products['products_image'], $products['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a><br><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id']) . '">' . $products['products_name'] . '</a><br>' . $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])));
break;
}
$col ++;
if ($col > ($randomcol-1)) {
$col = 0;
$row ++;
}
}

new contentBox($info_box_contents);

}
?>
<!-- random_pro_eof //-->
Rispondi