Jeroen vd op 04/05/2012 18:31:23
je wilt van een veld waar niets instaat toch iets weergeven? apart, aangezien er niets in staat! zet er of iets in, of bij die velden de standaardwaarde instellen op wat jij wilt hebben
Ja dat lijkt apart..wat moet je ermee met iets leegs ?, dat heeft te maken met door mij toegevoegde informatie aan een produkt ( heb ik het wel of niet gedaan )
Die informatie wordt in een kolom gepresenteerd.
De code die verantwoordelijk is om dit in een kolom te zetten in de vorm van een produktlijst is deze
<?php
}
echo ' ';
// END: Extra Fields Contribution
// begin Extra Product Fields
foreach ($epf as $e) { // FUNCTIE ( arrayname as $index ) JD
if ($e['language'] == $languages[$i]['id']) {
if ($e['language_active']) {
if (isset($HTTP_GET_VARS['read']) && ($HTTP_GET_VARS['read'] == 'only')) {
$value = tep_get_product_extra_value($e['id'], $pInfo->products_id, $languages[$i]['id']);
} else {
$value = tep_db_prepare_input($extra[$e['field']][$languages[$i]['id']]);
}
if (tep_not_null($value)) {
// if (tep_not_null($value)||($value == null)) { jd
echo '<b>' . $e['label'] . ': </b>';
if ($e['uses_list']) {
echo tep_get_extra_field_list_value($value, $e['show_chain']);
} else {
echo $value;
}
echo '<br>';
}
}
}
}
?>
Deze code + de databasequery hierboven laat nu juist wel de waarde van 2 velden uit de database altijd ( wat niet altijd kan, vandaar)zien van produkten, terwijl ik juist ook de produkten wil zien waar geen waarde door mij aan is toegekend
Deze code laat altijd waarden zien aan een produkt toegekend, maar dat kan in werkelijkheid niet altijd waar zijn omdat ik dat weet van bepaalde produkten uit een verzameling produkten
[size=xsmall]
Toevoeging op 04/05/2012 19:26:23:[/size]
Ger van Steenderen op 04/05/2012 18:42:11
Misschien is het een idee om dit met een (nested) left join op te lossen.
Als je hiermee de lege veldwaarde boven water mee krijgt?.. het zijn twee tabellen
en die join is dan om de tabellen te koppelen?
Wacht.. ik heb ook nog een andere database code die hetzelfde doet , maar alleen voor 1 produkt en daar zit die join(niet genest ws want er zit geen join in de join) ook in in
<?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>==> uitvoer..hier weggelaten
?>
[size=xsmall]
Toevoeging op 04/05/2012 19:39:08:[/size]
Waarin verschillen de twee database queries..beide halen dezelfde waarden op?
- 2 losse tabellen --> voor meer dan één produkt ..uitvoer met <?phpforeach ($epf as $e) ?> in produktlijst
- 2 gekoppelde tabellen(met join) --> 1 produkt .. op de produktinvoerbladzijde kan de veldwaarden van de database ingevoerd worden, dus invoer met uitvoer (tekst ) op produktbladzijde
Zit de fout toch in <?phpforeach ($epf as $e) ?> functie?
[size=xsmall]
Toevoeging op 04/05/2012 20:32:48:[/size]
Het moet wel dat de foreach () functie niet goed werkt
- Als het 1e produkt veldwaarden heeft word deze door foreach()goed in de produktlijst gezet in de kolom ( dit geld voor alle produkten die een veldwaarde hebben )
- Zou het 2e produkt geen veldwaarde hebben toegewezen door mij, dan geeft de foreeach() functie de veldwaarde van het 1e produkt voor het 2e produkt in de produktlijst in een kolom
Wat kan je hieruit concluderen?