functie maken van database query....

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Douma

Jan Douma

02/05/2012 21:38:55
Quote Anchor link
Per produkt bekekeken moet ik dit aanleveren in een array
Als Voorbeeld
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>'
;

}

?>

Hoe hieruit een functie op te stellen?
Gewijzigd op 02/05/2012 21:40:14 door Jan Douma
 
PHP hulp

PHP hulp

27/12/2024 04:58:35
 
Noppes Homeland

Noppes Homeland

02/05/2012 21:44:38
Quote Anchor link
En jij denkt dat we uit deze brei jouw een trap in de goede richting kunne geven?!

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!
 
Jan Douma

Jan Douma

02/05/2012 22:04:18
Quote Anchor link
nou..nou..kan je ff rustig aan doen.. probeer wel duidelijk te maken wat ik wil.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
  }

?>


En als 2 vb
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
}

?>


Deze 2 voorbeelden om met die eigen functie te komen
Gewijzigd op 02/05/2012 22:09:32 door Jan Douma
 
Jeroen VD

Jeroen VD

02/05/2012 22:11:09
Quote Anchor link
Welke database benadering methode gebruik je? Tep-db-* functies ken ik niet.

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?
 
Jan Douma

Jan Douma

02/05/2012 22:24:49
Quote Anchor link
Hallo!
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$extra_fields
['name']
$extra_fields['value']
?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
}

?>

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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
 
Noppes Homeland

Noppes Homeland

03/05/2012 19:03:08
Quote Anchor link
De "Expert" constateert nog steeds dat het bagger code is waar je mee opgescheept zit. Het zal mij dus niet verbazen dat eerdaags die hele code niet meer doet wat het moet doen.

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.
 
Jan Douma

Jan Douma

03/05/2012 19:56:47
Quote Anchor link
Overdrijf toch niet zo..het is oude software,maar de shop draait al 10 jaar zo en de eigenaar is tevreden.
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.