Ik geef een listing terug en de lg en bg zijn zichtbaar, maar zijn in het veld niet ingeschreven.
Nu zou ik willen dat ze ook in het veld lg en bg opgenomen worden in de database
maw het veld invullen met hetgeen in $data["lg"] staat.
Heeft iemand een Idee hoe ik dit kan doen in het if statement.
Thomas
ziehier nog eens de ganse code en uitleg :
List page : before record processed.
Description
Occurs before record is processed
Return true if you like to display row in the list, return false otherwise
Parameters
$data - array of field values of the record being processed. To access specific
field value use $data["FieldName"]
"rs" is an alternate name for this parameter.
$pageObject - an object of Page class representing the current page
<?php
$sql = "UPDATE database_bel SET bg = '". $data["bg"] ."' WHERE Code='". $code ."'";
?>
Even los van issues al sql-injectie of gewoon fouten als er een ' in je codes zit.
MAAR:
$bg wordt afgeleid van waarden in andere kolommen.
Stel we doen dit met een veld Voorletters en dat leid je dan af van Voornaam.
$voorletter = substr($voornaam, 0,1);
Werkt prima en dan sla je vervolgens die $voorletter op.
Maar dan bedenkt iemand dat hij liever niet meer Johannes heet, maar Hannes.
Dan blijft je voorletter op J staan.
En dat is strijdig.
En dat is hier niet zo heel erg in het geval van een voorletter, maar je kunt jouw coordinaten misschien eerst naar Parijs laten wijzen, en daarna aanpassen naar Berlijn.
Wat gaat er mis, als $bg toch op Parijs blijft staan, terwijl de rest naar Berlijn gaat?
Daarom zou je nooit afgeleide data moeten opslaan.
Of áls je het dan voor het gemak als wilt doen, zorg dan dat het altijd 100% klopt.
Dus niet door PHP laten bijwerken tijdens het weergeven, maar je database het met een trigger laten doen.
Een trigger die direct bij de INSERT of UPDATE de afgeleide velden vast berekent.