|
Datatype | Længde / Værdi | |
---|---|---|
decimal | L,D | L: Det samlede antal cifre feltet skal kunne indeholde. D: Antallet af decimaler ud af det samlede antal. L kan højst være 65. |
include ("funktioner/mgdfunk.php"); |
Ved inddata skal der før konverteringen tages højde for, hvordan brugerne indsætter data. Hvad menes f.eks med: 3.5 eller 4.000?
Funktionen til håndtering af inddata (tager imod et dansk tal og returnerer et tal, som PHP og databasen forstår) kan opbygges således (//x: tages ud før brug).
Funktionen behøver kun tilførsel af data fra en variabel benævnt $maengde og afleverer igen data til denne variabel.
Funktionsnavn: fmaengdeind | |
---|---|
Funktionen: function fmaengdeind ($maengde, $antal_decimaler = 2) { $maengde = str_replace (".", "x", $maengde); // Indtastet punktum medfører fejlmeddelelse $maengde = str_replace (" ", "", $maengde); // Mellemrum fjernes $maengde = str_replace (",", ".", $maengde); // Indtastet decimalkomma erstattes med punktum if (!is_numeric ($maengde)) { return false; } else { return $maengde; } } //Funktion slut | |
Funktionen kan passende indlejres i den almindelige validering af data fra en Form: if ($xxxxx == "") { $fejlbeskeder .= "Udfyld feltet<br />"; } else { $maengde = $xxxxxx; //f.eks. en pris $maengde = fmaengdeind($maengde); $xxxxxx = $maengde; if (!is_numeric ($xxxxxx)) { $fejlbeskeder .= "Dataene i feltet er ikke gyldige. Kun tal og et enkelt komma er tilladt.<br />"; } } |
0 og 2 | antal decimaler i feltet i DB |
nej og ja | om der skal vises 'tusind'-separator |
fmaengdeud_2_nej | fmaengdeud_2_ja |
---|---|
$pris = fmaengdeud_2_nej($row['plan_pris']); | $pris = fmaengdeud_2_ja($row['plan_pris']); |
Kodeeksempel: $maengde = $row['variabelnavn']; $maengde = fmaengdeud_2_nej($maengde); $variabelnavn = $maengde; echo "<tr><td>Kr. " . $variabelnavn ."</td></tr>"; |
Kodeeksempel: $maengde = $row['variabelnavn']; $maengde = fmaengdeud_2_ja($maengde); $variabelnavn = $maengde; echo "<tr><td>Kr. " . $variabelnavn ."</td></tr>"; |
Funktion: function fmaengdeud_2_nej($maengde) { $maengde = str_replace (",", "", $maengde); $maengde = str_replace (" ", "", $maengde); if (!is_numeric ($maengde)) { return false; } else { $tusep = ""; $deci = "2"; return number_format ($maengde, $deci, ",", $tusep); } } // funktion slut |
Funktion: function fmaengdeud_2_ja($maengde) { $maengde = str_replace (",", "", $maengde); $maengde = str_replace (" ", "", $maengde); if (!is_numeric ($maengde)) { return false; } else { $tusep = "."; $deci = "2"; return number_format ($maengde, $deci, ",", $tusep); } } // funktion slut |
fmaengdeud_0_nej | fmaengdeud_0_ja |
$pris = fmaengdeud_0_nej($row['plan_pris']); | $pris = fmaengdeud_0_ja($row['plan_pris']); |
Kodeeksempel: $maengde = $row['variabelnavn']; $maengde = fmaengdeud_0_nej($maengde); $variabelnavn = $maengde; echo "<tr><td>Kr. " . $variabelnavn ."</td></tr>"; |
Kodeeksempel: $maengde = $row['variabelnavn']; $maengde = fmaengdeud_0_ja($maengde); $variabelnavn = $maengde; echo "<tr><td>Kr. " . $variabelnavn ."</td></tr>"; |
Funktion: function fmaengdeud_0_nej($maengde) { $maengde = str_replace (",", "", $maengde); $maengde = str_replace (" ", "", $maengde); if (!is_numeric ($maengde)) { return false; } else { $tusep = ""; $deci = "0"; return number_format ($maengde, $deci, ",", $tusep); } } // funktion slut |
Funktion: function fmaengdeud_0_ja($maengde) { $maengde = str_replace (",", "", $maengde); $maengde = str_replace (" ", "", $maengde); if (!is_numeric ($maengde)) { return false; } else { $tusep = "."; $deci = "0"; return number_format ($maengde, $deci, ",", $tusep); } } // funktion slut |
I forbindelse med 'echo' kan de fire funktioner passende indlejres således: echo "<tr>"; echo "<td>$row[produkt_navn]</td>"; $maengde = $row['xxxxx']; $maengde = maengdeud_x_x($maengde); echo ">td<" . $maengde . " kr.</td>"; echo "</tr>"; | |
I forbindelse med udtræk af default fra DB under UPDATE kan de fire funktioner passende indlejres således: $maengde = $row['xxxxx']; $maengde = fmaengdeud_x_x($maengde); |
Funktionen til inddata ser sådan ud i sin grundform:
function fmaengde_ind ($maengde, $antal_decimaler = 2)
{ $maengde = str_replace (".", "x", $maengde); $maengde = str_replace (" ", "", $maengde); $maengde = str_replace (",", ".", $maengde); if (!is_numeric ($maengde)) { return false; } else { return $maengde; } } //Funktion slut |
if ($produkt_pris == "") { $fejlbeskeder .= "Udfyld pris<br />"; } else { $belob = $produkt_pris; $belob = belob_inddata($belob); $produkt_pris_db = $belob; if (!is_numeric ($produkt_pris_db)) { $fejlbeskeder .= "Prisen er ikke gyldig. Kun tal og et enkelt komma er tilladte.<br />"; } } |
Funktionen til inddata ser sådan ud i sin grundform:
Funktionen behøver kun tilførsel af data fra en foranstillet variabel benævnt $beløb og afleverer igen data til denne variabel.
function fmaengde_ud ($maengde, $antal_decimaler = 2, $med_tusindseparator = false) { $maengde = str_replace (",", "", $maengde); $maengde = str_replace (" ", "", $maengde); if (!is_numeric ($maengde)) { return false; } else { if ($med_tusindseparator == true) { $tusindseparator = "."; } else { $tusindseparator = ""; } return maengd_ud ($maengde, $antal_decimaler, ",", $tusindseparator); } } // funktion slut |
Ved visning af uddata.
echo "<tr>"; echo "<td>$row[produkt_navn]</td>"; $belob = $row['produkt_pris']; $belob = belob_uddata ($belob); echo ">td<" . $belob . " kr.</td>"; echo "</tr>"; |
Ved udtræk af default fra DB under UPDATE.
$produkt_navn = $row['produkt_navn']; $belob = $row['produkt_pris']; $produkt_pris = belob_uddata($belob); // Konvertér til dansk pris |