PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $id=1; $sql = "SELECT * FROM product WHERE productid='$id'"; $result = mysql_query($sql) or die('Kon gegevens niet selecteren<br>'.$sql.'<br>'.mysql_error()); $item = mysql_fetch_array($result); $config = fopen("product_config.txt", "r"); $i = 0; while(!feof($config)) { $configitem = split(";", fgets($config)); $field[] = $configitem[1]; } fclose($config); echo $field[2]; //geeft netjes titel als resultaat echo $item[$field[2]] . "<br>"; //geeft een lege regel echo $item[titel]; //geeft de waarde uit de db uit de kolom titel en werkt goed |
code:
1
2
3
4
5
6
7
8
9
10
11
| $prodid;productid $artnr;artnr $titel;titel $omschr;omschr $prijs;prijs $besteleenheid;besteleenheid $inhoud;inhoud $classificatie;classificatie $gebiedid;gebiedid $image1;image1 $voorraad;voorraad |
php code wil ik gebruiken om mijn scripts breder inzetbaar te maken. Ik gebruik veel code weer bij andere projecten, maar ik verander op verschillende plaatsen de veldnamen continue. Om dit nu heel eenvoudig te maken dacht ik een extern config bestandje te gebruiken en de waarden daaruit te gebruiken. Maar wat wil nou? echo $item[$field[2]] . "<br>"; geeft altijd een leeg resultaat. Hoe ik ook probeer. Het uiteindelijke doel is niet die echo, maar het opbouwen van dynamische code.
Of het uiteindelijke werkt zoals ik wil weet ik niet, maar ik kan nu niet uitstaan dat ik het zo niet werkend krijg. Wat mis ik?
$item[titel] geeft netjes de waarde uit de db terug. En $field[2] geeft netjes 'titel' als resultaat. Dus je zou zeggen... $item[$field[2]] moet werken. Wat ik ook heb geprobeerd is $field[2] hard op titel te zetten, dan werkt het dus wel. Op beide manieren bevat $field[2] dezelfde waarde, maar als het uit de txt file komt werkt het niet, zet ik hem in de code zelf dan werkt het perfect. Ik vind het raar.