functie maken van database query....
Als Voorbeeld
Code (php)
1
2
3
2
3
<?php
$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
?>
$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
?>
De bedoeling is om zelf een functie te gaan maken indeze vorm..
Code (php)
1
2
3
2
3
<?php
$contents[] = array('text' => '<br>' . TEXT_EXTRA_FIELD_NAME_VALUE . '<br><b>' . tep_extrafields_name_value(???) . '</b>');
?>
$contents[] = array('text' => '<br>' . TEXT_EXTRA_FIELD_NAME_VALUE . '<br><b>' . tep_extrafields_name_value(???) . '</b>');
?>
( de argument(en) van de functie weet ik nog niet) :
Betekent dat ik een functie moet gaan zien te maken: tep_extrafields_name_value()
uit deze onderstaande gegevens, dus wat hieronder staat vervangen door een functie
--------------------------------------------------------------------
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
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
<?php
$products_id = (int)$HTTP_GET_VARS['products_id'];
$extra_fields_query = tep_db_query("
SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value
FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef
LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf
ON ptf.products_extra_fields_id=pef.products_extra_fields_id
WHERE ptf.products_id=". (int) $products_id ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$languages_id."')
ORDER BY products_extra_fields_order");
while ($extra_fields = tep_db_fetch_array($extra_fields_query)) {
if (! $extra_fields['status']) // show only enabled extra field
continue;
echo /* Advance software search bof */ '<tr>
<td>
<table border="0" width="50%" cellspacing="0" cellpadding="2px"><tr>
<td class="main" align="left" vallign="middle" nowrap><b><font size="1" color="#666666">'.$extra_fields['name'].': </b></font></td>';
echo '<td nowrap><font size="1" color="#666666">' .$extra_fields['value'].'<BR></font> </tr>
</table>
</td>
</tr>';
}
?>
$products_id = (int)$HTTP_GET_VARS['products_id'];
$extra_fields_query = tep_db_query("
SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value
FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef
LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf
ON ptf.products_extra_fields_id=pef.products_extra_fields_id
WHERE ptf.products_id=". (int) $products_id ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$languages_id."')
ORDER BY products_extra_fields_order");
while ($extra_fields = tep_db_fetch_array($extra_fields_query)) {
if (! $extra_fields['status']) // show only enabled extra field
continue;
echo /* Advance software search bof */ '<tr>
<td>
<table border="0" width="50%" cellspacing="0" cellpadding="2px"><tr>
<td class="main" align="left" vallign="middle" nowrap><b><font size="1" color="#666666">'.$extra_fields['name'].': </b></font></td>';
echo '<td nowrap><font size="1" color="#666666">' .$extra_fields['value'].'<BR></font> </tr>
</table>
</td>
</tr>';
}
?>
Hoe hieruit een functie op te stellen?
Gewijzigd op 02/05/2012 21:40:14 door Jan Douma
Post het dan op z'n minst tussen de daarvoor bedoelde blok-codes!!
En dit lijkt op een dubbelpost, waar je al totaal niets mee opschiet, ik ziet namelijk dezelfde bagger ook hier:
http://www.phphulp.nl/php/forum/topic/kolom-vullen-search-menu-regel-van-produkt/84370/
terug.
Flikker al die code maar eens in de prullenbak en zet een fatsoenlijk gecodeerde webshop op!
Wat ik hierboven duidelijk heb proberen te maken is dat ik een functie moet zien te maken van een database query
Het is geen dubbelpost..het is weer een concessie die ik moet doen om het per produkt te moeten gaan bekijken.
Wat ik eerst wilde heb ik geprobeerd uit te leggen hier ,maar dat is te ingewikkeld en daar kwam ik niet verder mee, dus dacht ik het eenvoudiger te gaan maken
Je schrijft..
Flikker al die code maar eens in de prullenbak en zet een fatsoenlijk gecodeerde webshop op!--> de shop is op zich wel fatsoenlijk gecodeerd lijkt me
Als voorbeeld om die functie te maken heb ik 2 vb vande bladzijde general.php afgehaald
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// Return a products_model JD (1)
function tep_get_products_model($product_id, $language = '') {
global $languages_id;
if (empty($language)) $language = $languages_id;
$product_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'");
$product = tep_db_fetch_array($product_query);
return $product['products_model'];
}
?>
// Return a products_model JD (1)
function tep_get_products_model($product_id, $language = '') {
global $languages_id;
if (empty($language)) $language = $languages_id;
$product_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$product_id . "'");
$product = tep_db_fetch_array($product_query);
return $product['products_model'];
}
?>
En als 2 vb
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// Return a product's manufacturer name
function tep_get_manufacturers_name($product_id) {
$the_manufacturers_query = tep_db_query("select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image, mi.manufacturers_url from " . TABLE_MANUFACTURERS . " m, " . TABLE_MANUFACTURERS_INFO . " mi, " . TABLE_PRODUCTS . " p where p.products_id = '" . $product_id . "' and p.manufacturers_id = m.manufacturers_id and mi.manufacturers_id = m.manufacturers_id");
$the_manufacturers = tep_db_fetch_array($the_manufacturers_query);
return $the_manufacturers['manufacturers_name'];
}
?>
// Return a product's manufacturer name
function tep_get_manufacturers_name($product_id) {
$the_manufacturers_query = tep_db_query("select m.manufacturers_id, m.manufacturers_name, m.manufacturers_image, mi.manufacturers_url from " . TABLE_MANUFACTURERS . " m, " . TABLE_MANUFACTURERS_INFO . " mi, " . TABLE_PRODUCTS . " p where p.products_id = '" . $product_id . "' and p.manufacturers_id = m.manufacturers_id and mi.manufacturers_id = m.manufacturers_id");
$the_manufacturers = tep_db_fetch_array($the_manufacturers_query);
return $the_manufacturers['manufacturers_name'];
}
?>
Deze 2 voorbeelden om met die eigen functie te komen
Gewijzigd op 02/05/2012 22:09:32 door Jan Douma
Verder, als je dit fatsoenlijk gecodeerd noemt, hoop ik niet dat dit in je webshop zo is. Variabelen global zetten, empty() gebruiken, geen afhandeling. Nee, dat is niet goed gecodeerd.
Verder heb je in je eerste post inline css in html in php. Dat is dubbel fout. Ik neem btw aan dat je met constanten werkt?
Tep-db-* functies ..zijn functies die oscommerce gebruikt, maar zijn natuurlijk gewoon php functies
tep=the exchance project ..dat was de naam voor oscommerce in het prille begin toen de programmeurs ermee begonnen
Het gaat om 2 variabelen uit de database gehaald worden
die hier in html staan in een andere toepassing op de shop ,maar later als functie
ok dan maak ik de nieuwe functie...
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
<? php
function tep_extrafields_name_value($product_id) {
$extra_fields_query = tep_db_query("
SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value
FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef
LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf
ON ptf.products_extra_fields_id=pef.products_extra_fields_id
WHERE ptf.products_id=". (int) $products_id ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$languages_id."')
ORDER BY products_extra_fields_order");
while ($extra_fields = tep_db_fetch_array($extra_fields_query)) {
if (! $extra_fields['status']) // show only enabled extra field
continue;
return $extra_fields[name'];
return $extra_fields['value'];
}
?>
function tep_extrafields_name_value($product_id) {
$extra_fields_query = tep_db_query("
SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value
FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef
LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf
ON ptf.products_extra_fields_id=pef.products_extra_fields_id
WHERE ptf.products_id=". (int) $products_id ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$languages_id."')
ORDER BY products_extra_fields_order");
while ($extra_fields = tep_db_fetch_array($extra_fields_query)) {
if (! $extra_fields['status']) // show only enabled extra field
continue;
return $extra_fields[name'];
return $extra_fields['value'];
}
?>
o..er zit ook nog een language_id in de database query..maar ja op de shopadministratie open ik de produktlijst en daar heb ik toch niets te maken met de language..nou ja
Waar ik bang voor ben dat de functie invoer niet goed is als ik naar een ander voorbeeld kijk van een functie
Code (php)
1
2
3
2
3
<?php
$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
?>
$contents[] = array('text' => '<br>' . TEXT_INFO_CURRENT_CATEGORIES . '<br><b>' . tep_output_generated_category_path($pInfo->products_id, 'product') . '</b>');
?>
Het gaat erom dat de produktbladzijde op de shopadministratie bij het selecteren van het produkt de functie uitvoert en het resultaat in een tabel zet waar meer productgegevens staan
Gaat middels een array constuctieinvoer en uitvoer als ik het zo bekijk
Voor de tabel products is het geen probleem, maar deze nieuwe functie gebruikt andere tabellen, dus kan ik het niet naapen
Nogmaals ben een amateur op het gebied van programmeren en probeer met mijn gezonde verstand te bekijken
Ik wou dat ik het kon echt goed programmeren in php..woow dan kan ik echt de shop maken die ik wil, dan zal ik toch echt bij een bedrijf moeten gaan werken
Er zit zoveel ingeniues programmeerwerk in de oscommerce shop
Toevoeging op 03/05/2012 16:24:14:
Nou hoor niets van de zogenaamde php experts hier?
Gewijzigd op 02/05/2012 23:14:35 door Jan Douma
Quote:
Er zit zoveel ingeniues programmeerwerk in de oscommerce shop
Yep, dat zal wel zo zijn, maar gezien er voortgeborduurd is op de eerst gemaakte basis code is het een zodanige brei aan code geworden, dat het niet echt efficient meer is. De enige manier om het te krijgen wat je hebt is het in z'n geheel te herschrijven naar de tegenwoordige tijd. Maar ja zoals je zelf al schrijft zal dat jouw niet lukken, maar wees gerust, de makers zouden ook niet meer wijs worden en gewoon geheel opnieuw beginnen.
M.a.w. jij probeert van deze brei-"bagger"-code gier te maken. Als jij deze gier dan over het land gaat uitrijden, dan zal dat niet tot veel goeds leiden.
En nu hoop ik toch echt dat je inziet, dat je op zoek moet naar iets anders. Koop iets, gaat niet zelf ergens aan prutsen wat buiten je bereik ligt.
Ken je de contributies van oscommerce ?... die pas je ook in de bestaande code toe
Ik heb 10 tallen contributies ingebouwd zover ik het kon, want ik ben geen programmeur , maar heb wel een beetj ekijk op een programmeertaal.
Dat dingetje wat ik wil is heel gemakkelijk in de bestaande code in te passen
http://www.zerospec.com/testmap/2variabelen.jpg
een functie die op een aparte bladzijde staat en de functieaanroep op produktlijstbladzijde..eenvoudiger kan niet
wil je me nieuwe shopsoftware verkopen..? vind maar eens moderne shopsoftware die de functionaliteit heeft die ik nu op de shop heb..dat is het probleem
Dat laten programmeren kost een fortuin..haha..
Misschien dat je voor 1000 Euro weer helemaal een moderne shop hebt ?
De makers van oscommerce zijn met eenmoderne versie 3 gekomen,maar zo te zien komt dit niet van de grond omdat er geen genoeg contributies voor zijn en iedereen nog met zijn oude software in de weeer is
Ik geloof dat de releasecadidaatoscommerce 2.3 wel voor de moderne tijd is..de laatste versie..mijn shop versies is nog van veel eerder helaas
Probleem is hierbij dat sommige contributies weer niet werken op de nieuwste oscommerce versie..dus overnieuw beginnen is niet te doen en het blijft oude software
inderdaad heb ik weleerder gehoord dat de programmering van de oscommerce shop versi edie ik heb niet zo efficient is geweest
Ik heb wel een ajax product search--> lekker snel..en di eben ik nu nog aan het verbeteren en dan is het mooi geweest
Gewijzigd op 03/05/2012 20:19:27 door Jan Douma