De code beter geschreven :)
Toelichting :
Elk produkt heeft een ..products-id ( sleutel? ) en bij elk produkt hoort ook een opgegeven gewicht in de database "products"
Het is 1 tabel met een record ( rij ) product x en gewicht y ..toch?
De products -id is voor het product en word gebruikt als externe sleutel voor het gewicht ? .. deze bewering zou ik kunnen onderzoeken en kijken in de database op de shop ?
Zit ik in de goede richting of word het anders?
Opm: ik weet haast wel zeker dat dit een eitje( meest eenvoudige geval) is voor de echte database specialist
//-- code netter geschreven
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_PRICE_NINFO . ' ' . $currencies->format($pInfo->products_price) );
$get_tax_qry = tep_db_query(
"SELECT tr.tax_rate
FROM " . TABLE_PRODUCTS . " p INNER JOIN " . TABLE_TAX_RATES . " tr
ON (p.products_tax_class_id = tr.tax_class_id)
WHERE (p.products_id = " . $pInfo->products_id . ")");
$get_tax_res = tep_db_fetch_array($get_tax_qry);
$products_price_with_tax = tep_add_tax($pInfo->products_price, $get_tax_res['tax_rate']);
$get_special_price_qry = tep_db_query(
" SELECT s.specials_new_products_price,
s.`status` FROM ".TABLE_SPECIALS."
s WHERE (s.products_id = '".$pInfo->products_id."')");
$get_special_price_res = tep_db_fetch_array($get_special_price_qry);
if($get_special_price_res)
{
$get_special_price_with_tax = tep_add_tax($get_special_price_res['specials_new_products_price'], $get_tax_res['tax_rate']);
}
// bof toegevoegd database query voor products_weigth : correct ?
$products_weight =tep_db_query(
"SELECT products_weight
FROM " . TABLE_PRODUCTS . "
WHERE (products_id = '".$pInfo->products_id."')");
// eof
//----------------------------------------------------------------------
Toelichting : De toegevoegde code hieronder laat een tekstbox TEXT_PRODUCTS_WEIGHT zien in de admin.
In het nederlands(taal) word dit : gewicht product : ?
Op de plaats van het vraagteken moet de query van het produktgewicht komen : zie hierboven wat ik voor een SELECT statement gebruikt heb om te proberen de gramwaarde uit de tabel PRODUCTS te krijgen
//----------------------------------------------------------------------
// bof toegevoegd : products_weight in administratie
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_PRICE_INFO . ' ' . $currencies->format($products_price_with_tax) . '<br><br>' . TEXT_PRODUCTS_QUANTITY_INFO . ' ' . $pInfo->products_quantity . '<br><br>' . TEXT_PRODUCTS_WEIGHT_INFO . ' ' . $pInfo->products_weight);
// eof
if($get_special_price_with_tax >= '0' && $get_special_price_res['status'] =1)
{
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_PRICE_SINFO . ' ' . $currencies->format($get_special_price_with_tax) );
}
//
De omliggende code van deze code is bedoeld als voorbeeld
Deze code was van een contributie ( extra functionaliteit) die van een bepaald produkt in de administratie de bruto en netto prijs laat zien
Mijn uitbreiding van deze contri is om ook het gewicht te laten zien van een produkt i.v.m verzending ( handig )
Hiervoor moet er dan uit de 1 tabel "products".....
De code hieronder heb ik uit de database products gehaald
SELECT COUNT( * ) AS `Rijen` , `products_weight`
FROM `products`
GROUP BY `products_weight`
ORDER BY `products_weight`
LIMIT 0 , 30
Dit zouden dan alle produktgewichten zijn ?... terwijl ik er voor een bepaald produkt_id ( primaire sleutel?), maar 1 bijbehorend gewicht heb..toch?
Hiervoor het juiste SELECT commando opstellen en ook nog op de juiste manier a la oscommerce in een array opslaan ( daarvoor die omringende code om een idee hiervan te krijgen )
Komt erop neer dat ik een produkt gewicht en produkt model op de adminstratie bladzijde van de shop wil plaatsen
( ik moet nu 1400 produkten invoeren en sommige met dezelfde produktomschrijving word het erg omslachtig : dus een produkt model is nodig )
De vraag is dus hoe de code aan te passen ?
AANTAL STAPPEN TE NEMEN : ophalen waarde uit database(stap 1), een resultaatset in een array rij opslaan (stap 2), de arraywaarde uit 2 tonen(stap3)
Er is een variable : products_model opgeslagen in de database van elk produkt
Stap 1
$get_products_model_qry : selectie van products_model (van een bepaald produkt) waarde uit tabel via :
$get_products_model_qry =tep_db_query("SELECT products_model FROM" . TABLE_PRODUCTS . WHERE (p.products_id= " . $pinfo->products_id . ")");
Stap2
- een resultaatset (array):
$get_products_model_res=tep_db_fetch_array($get_products_model_qry );
Bovenstaande code zou dan voor een bepaal produkt ( via p.products_id ) het produkt_model in een 1- regelige array opslaan
Deze waarde moet dan weer uitgelezen gaan worden in stap 3
Stap 3
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_MODEL_INFO . ' ' . $pInfo->$ get_products_model_res);
Het enigste wat ik wil dat een produktgewicht en produktmodel in de produktadministratie van de shop af te lezen is
In de tabel PRODUCTS staan deze 2 velden : productsmodel en products_weight
Het komt er in feite op neer dat bij een gekozen produkt ( met een product_id =primaire sleutel ?) er dus uit één tabel PRODUCTS de waarde van het veld products_model opgevraagd moet worden
En dan ook nog voor gewicht
Het meest eenvoudige geval geloof ik
Probleem is dit te doen op dezelfde manier als in de code van de shop
( schoolvoorbeeld is geen probleem )
Ik heb wat omringende code gepost om een idee te krijgen