Ik heb wat studieboeken over PHP en SQL en al die databse commando's

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

-------------------------------------------------------------------------------------


$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) );
}

----------------------------------------------------------------------------------

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
Code tags gebruiken :) [.code] [./code] (zonder puntje natuurlijk)

[edit]
200 \o/
[/edit]
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
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) );
} 
// 


groet
Jan
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 )

Jan



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);



Zit ik zo in de goede richting?

Jan

$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);


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
Ik kom er niet uit om het productgegevens : model en gewicht in de adminstratie telaten zien als er een produkt geselecteerd is

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

Is er iemand die me kan helpen ?

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

Reageren