database in een Oscommerce shop
In een oscommerce shop wijken weer af ( de structuur is in principe hetzelfde )
Bijv ik wil een gewicht voor een bepaald produkt weergeven in de administratie van de shop als dit produkt is geselecteerd
-------------------------------------------------------------------------------------
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$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
----------------------------------------------------------------------
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) );
}
$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
----------------------------------------------------------------------
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) );
}
----------------------------------------------------------------------------------
Je ziet ik heb al wat geprobeerd dor naar de structuur van de andere 2
tep_db_query("SELECT .................... te kijken
MAAR ik zie het gewichts getal nog niet in de admin komen
Misschien ziet iemand dit ?
Opm: je hebt helemaal gelijk met de code tags, maar dacht dat het ook automatisch ging
groet
Jan
Gewijzigd op 01/01/1970 01:00:00 door Jan Douma
je code is nogal vrij onleesbaar. voeg eerst eens code tags toe en lijn je code netjes uit. Post ook alleen relevante code.
Hier en daar een enter, tab en/of spatie kan geen kwaad... Wordt de boel een stuk leesbaarder van!
zie codeaanpassing
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 (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//-- 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) );
}
//
$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) );
}
//
groet
Jan
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
Code (php)
1
2
3
4
5
2
3
4
5
SELECT COUNT( * ) AS `Rijen` , `products_weight`
FROM `products`
GROUP BY `products_weight`
ORDER BY `products_weight`
LIMIT 0 , 30
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 )
Jan
( 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)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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);
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);
Zit ik zo in de goede richting?
Jan
Gewijzigd op 01/01/1970 01:00:00 door Jan Douma
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$get_products_model_qry =tep_db_query("
SELECT products_model
FROM " . TABLE_PRODUCTS . " WHERE (products_id= " . $pinfo->products_model . ")");
$get_products_model_res=tep_db_fetch_array($get_products_model_qry );
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_MODEL_INFO . ' ' . $pInfo->get_products_model_res);
SELECT products_model
FROM " . TABLE_PRODUCTS . " WHERE (products_id= " . $pinfo->products_model . ")");
$get_products_model_res=tep_db_fetch_array($get_products_model_qry );
$contents[] = array('text' => '<br>' . TEXT_PRODUCTS_MODEL_INFO . ' ' . $pInfo->get_products_model_res);
Ik heb dit er nu van gemaakt om het products_model uit de database te zoeken , opslaan en uitlezen
Zit ik zo in de goede richting?
Jan
ps hier een plaatje van het idee :
http://www.jdoumasluizen.nl/produktmodel_inadmin.gif
Gewijzigd op 01/01/1970 01:00:00 door Jan Douma
Ondanks dat ik weet dat het maar 1 record is ( via fetch_array() ) De product_id en 1 veld ( bijv produktmodel )
Ik begrijp de syntax niet goed : p.products_id en s. products_id bijv i.p.v products_id ?
Helaas
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
Jan