Inderdaad om de produktlijst te maken heeft de programmeur 2 queries gebruikt, misschien heeft dat te maken met ophalen vande gegevens met de foreach?
Om dezelfde veldwaarden t ekrijgen nu voor 1 produkt heeft ie wel 1 query gebruikt
<?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>';
}
?>
Dit zou je nu voor produkten meer dan 1 kunnen gebruiken omhiervan ook een produktlijst te gaan maken?
In een plaatje en in het begin van deze topic heb ik uitgelegd wat die foreach fout doet..dus mogelijk dat het niets met de database zelf te maken heeft?
[size=xsmall]
Toevoeging op 05/05/2012 11:46:10:[/size]
http://www.zerospec.com/testmap/produktlijst1produkt.jpg
Laat ik proberen om het programmeerprobleem vereenvoudigen tot het weergeven van d e veldwaarde voor 1 produkt-- zie plaatje
------------------------------------------------------------
De foreach word hier niet meer gebruikt !
-------------------------------------------------
Op de shopadministratie is het mogelijk om in de produktlijst één voor één door de produkten te lopen..je opent de produktinvoer bladzijde voor 1 produkt ( te zien in de produktlijst aan het grijze selectie driehoek ..welk produkt is geselecteerd )
De bestaande code die het éne produkt selecteert moet ook dan de querie die hierboven staat gaan gebruiken, want dat is voor 1 produkt
<?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>';
}
?>
Opmerking: voor Christiaan zou dit mogelijk wel op te lossen zijn?