Ik heb :

$data - array of field values of the record being processed. To access specific
field value use $data["FieldName"]


<?php
if ($z=="S")
{
$data["bg"]= "-".$a.".".substr($c,2,6) ;
}
else
{
$data["bg"]= $a.".".substr($c,2,6) ;
}

$y=substr($data["Lengtegraad"],0,1);
if ($y=="W")
{
$data["lg"]= "-".$d.".".substr($f,2,6) ;
}
else
{
$data["lg"]= $d.".".substr($f,2,6) ;
}
?>


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.

Dank bij voorbaat

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

function BeforeProcessRowList($data, $pageObject)
{
$code = $data["Code"];
$data['LINK']="http://coord.info/" .$data['Code'];
$b=0;
$a=0;
$c=0 ;
$d=0;
$e=0;
$f=0;
$x=0;
$y="";
$z="";

$breedte=$data["Breedtegraad"];
$lengte=$data["Lengtegraad"];
$x= strlen("$lengte");


$a=substr($breedte,1,2);
$b=substr($breedte,6,6);
//$d=substr($lengte,1,2);
//$e=substr($lengte,5,6);

if (strlen($data["Lengtegraad"])== 12)
{
$e=substr($lengte,6,6);
$d=substr($lengte,1,2);
}
if (strlen($data["Lengtegraad"])>= 13)
{
$e=substr($lengte,7,6);
$d=substr($lengte,1,3);
}

intval($e);
intval($b);
$c=$b/60;
$f=$e/60;
$z=substr($data["Breedtegraad"],0,1);

if ($z=="S")
{
$data["bg"]= "-".$a.".".substr($c,2,6) ;
}
else
{
$data["bg"]= $a.".".substr($c,2,6) ;
$sql = "UPDATE database_bel SET bg =$data["bg"] WHERE Code=$code";
}

$y=substr($data["Lengtegraad"],0,1);
if ($y=="W")
{
$data["lg"]= "-".$d.".".substr($f,2,6) ;
}
else
{
$data["lg"]= $d.".".substr($f,2,6) ;
}
// Place event code here.
// Use "Add Action" button to add code snippets.

return true;





$data["bg"]= $a.".".substr($c,2,6) ;(Dit doet hij ferfect)

$sql = "UPDATE database_bel SET bg =$data["bg"] WHERE Code=$code";(dit doet hij niet )

Je gaat mis met je quotes:

<?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.


Reageren