PHP punten vervangen door komma's.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Johan de wit

johan de wit

30/01/2014 13:00:43
Quote Anchor link
De beste wensen nog (ik ben hier nog nieuw),

Ik heb een webshop dat op maat is gemaakt, alles werkt naar behoring. Zelf heb ik getest via PhpMyAdmin daar had ik voor effe paar prijzen aangepast van 10,75 en dat pakte in front-end, nadat product was besteld verdwijnde komma weer in de winkelwagen. Via admin paneel zag je dat komma daar ook pakte, maar als je met komma wilt opslaan dan krijg je een melding dat de prijs niet klopt.

Ik heb met PHP geprobeerd om 1 voor 1 de prijzen aan te passen, maar niks is gelukt ik heb zeker meer dan 6 soorten gevonden en allemaal had ik bij elke prijzen geprobeerd, javascripts had ik in bestaande javascript geplakt en dat werkt ook al niet.

Heeft iemand een idee om dit op te lossen of is er manier met javascript dat alle prijzen vanzelf aangepast wordt?
 
PHP hulp

PHP hulp

22/12/2024 09:00:36
 
- Ariën  -
Beheerder

- Ariën -

30/01/2014 13:09:20
Quote Anchor link
In de wereld van het programmeren worden altijd punten gebruikt voor de decimalen. Dus ik raad je met klem aan om deze in keer programmacode te gebruiken. In MySql Is dit het type FLOAT.

Als je klaar bent met het rekenen, dan kan keer in PHP met de functie number_format() drum eigen opmaak hebben met komma's.
Gewijzigd op 30/01/2014 13:11:30 door - Ariën -
 
Michael -

Michael -

30/01/2014 13:09:31
Quote Anchor link
Johan de wit op 30/01/2014 13:00:43:
De beste wensen nog (ik ben hier nog nieuw),

Ik heb een webshop dat op maat is gemaakt, alles werkt naar behoring. Zelf heb ik getest via PhpMyAdmin daar had ik voor effe paar prijzen aangepast van 10,75 en dat pakte in front-end, nadat product was besteld verdwijnde komma weer in de winkelwagen. Via admin paneel zag je dat komma daar ook pakte, maar als je met komma wilt opslaan dan krijg je een melding dat de prijs niet klopt.

Ik heb met PHP geprobeerd om 1 voor 1 de prijzen aan te passen, maar niks is gelukt ik heb zeker meer dan 6 soorten gevonden en allemaal had ik bij elke prijzen geprobeerd, javascripts had ik in bestaande javascript geplakt en dat werkt ook al niet.

Heeft iemand een idee om dit op te lossen of is er manier met javascript dat alle prijzen vanzelf aangepast wordt?

Welkom op het forum!

Eerst is het belangrijk hoe je de prijzen opslaat in je database.
Volgens mij is het beste dit als de DECIMAL(10,2) op te slaan.
Je zou de prijs dan bij het ophalen kunnen aanpassen naar een komma.
In mysql
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT REPLACE(prijs, '.', ',')

Of in php met number_format()
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$prijs = number_format($prijs, 2, ',', ' ');
 
- SanThe -

- SanThe -

30/01/2014 13:12:04
Quote Anchor link
Een getal heeft nooit een komma alleen bij het presenteren aan de gebruiker.

http://nl3.php.net/manual/en/function.money-format.php
 
Johan de wit

johan de wit

30/01/2014 13:15:42
Quote Anchor link
Michael - op 30/01/2014 13:09:31:
Johan de wit op 30/01/2014 13:00:43:
De beste wensen nog (ik ben hier nog nieuw),

Ik heb een webshop dat op maat is gemaakt, alles werkt naar behoring. Zelf heb ik getest via PhpMyAdmin daar had ik voor effe paar prijzen aangepast van 10,75 en dat pakte in front-end, nadat product was besteld verdwijnde komma weer in de winkelwagen. Via admin paneel zag je dat komma daar ook pakte, maar als je met komma wilt opslaan dan krijg je een melding dat de prijs niet klopt.

Ik heb met PHP geprobeerd om 1 voor 1 de prijzen aan te passen, maar niks is gelukt ik heb zeker meer dan 6 soorten gevonden en allemaal had ik bij elke prijzen geprobeerd, javascripts had ik in bestaande javascript geplakt en dat werkt ook al niet.

Heeft iemand een idee om dit op te lossen of is er manier met javascript dat alle prijzen vanzelf aangepast wordt?

Welkom op het forum!

Eerst is het belangrijk hoe je de prijzen opslaat in je database.
Volgens mij is het beste dit als de DECIMAL(10,2) op te slaan.
Je zou de prijs dan bij het ophalen kunnen aanpassen naar een komma.
In mysql
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT REPLACE(prijs, '.', ',')

Of in php met number_format()
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$prijs = number_format($prijs, 2, ',', ' ');



Dankjewel.
Idd ik heb decimal op 10,2 staan.
Replace in database heb ik nog geprobeerd, in het PHP wel maar dat werkte niet en zelf met landcode werkte het niet.

Toevoeging op 30/01/2014 13:18:16:

- Aar - op 30/01/2014 13:09:20:
In de wereld van het programmeren worden altijd punten gebruikt voor de decimalen. Dus ik raad je met klem aan om deze in keer programmacode te gebruiken. In MySql Is dit het type FLOAT.

Als je klaar bent met het rekenen, dan kan keer in PHP met de functie number_format() drum eigen opmaak hebben met komma's.


Dankjewel.
Oke, ik zal FLOAT uitproberen. Is DRUM decimaal instellen?
 
- Ariën  -
Beheerder

- Ariën -

30/01/2014 13:19:04
Quote Anchor link
Wat heb je dan precies geprobeerd? Kan je dat graag laten zien?
 
Michael -

Michael -

30/01/2014 13:20:28
Quote Anchor link
Johan de wit op 30/01/2014 13:15:42:
Dankjewel.
Idd ik heb decimal op 10,2 staan.
Replace in database heb ik nog geprobeerd, in het PHP wel maar dat werkte niet en zelf met landcode werkte het niet.

Replace gebruik je dan bij de select he. Dus je query wordt iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT prijs, REPLACE(prijs, '.',',') FROM jouwtabel


number_format zou ook moeten werken.

Landcode heeft met replace en number_format niks te maken. Wel met money_format.
 
Johan de wit

johan de wit

30/01/2014 13:23:50
Quote Anchor link
- SanThe - op 30/01/2014 13:12:04:
Een getal heeft nooit een komma alleen bij het presenteren aan de gebruiker.

http://nl3.php.net/manual/en/function.money-format.php


Dit heb ik ook al geprobeerd.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
setlocale(LC_MONETARY,'nl_NL');
echomoney_format('%.2n',$number)."\n";
 
Michael -

Michael -

30/01/2014 13:24:16
Quote Anchor link
@Aar; waarom kies jij FLOAT? Zover ik kan vinden wordt dit juist afgeraden vanwege het vage afronden waardoor je prijzen onjuist kunnen zijn. DECIMAL wordt hiervoor geadviseerd.
 
- Ariën  -
Beheerder

- Ariën -

30/01/2014 13:26:27
Quote Anchor link
Je hebt helemaal gelijk. Sorry...
 
Johan de wit

johan de wit

30/01/2014 13:27:51
Quote Anchor link
- Aar - op 30/01/2014 13:26:27:
Je hebt helemaal gelijk. Sorry...


Dus dan blijven wij bij DECIMAL?
 
Michael -

Michael -

30/01/2014 13:39:47
Quote Anchor link
Aar: Geen probleem. Dat er geen verwarring hierover ontstaat :)
Johan: Ja. Kun je wat duidelijker zijn wat er fout gaat? Als het heb je nou in je database een veld met het type DECIMAL(10,2) met daar prijzen als 123433.33 (max 10 cijfers gevolgd door een punt en 2 cijfers) Deze haal je op met een SELECT en dan de waarde die daaruit komt daar voeg je de functie number_format aan toe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$prijs = number_format($rijuitjedatabase['prijs'], 2, ',', ' ');
echo $prijs;

en wat komt er dan uit?
 
Johan de wit

johan de wit

30/01/2014 13:48:07
Quote Anchor link
Michael - op 30/01/2014 13:39:47:
Aar: Geen probleem. Dat er geen verwarring hierover ontstaat :)
Johan: Ja. Kun je wat duidelijker zijn wat er fout gaat? Als het heb je nou in je database een veld met het type DECIMAL(10,2) met daar prijzen als 123433.33 (max 10 cijfers gevolgd door een punt en 2 cijfers) Deze haal je op met een SELECT en dan de waarde die daaruit komt daar voeg je de functie number_format aan toe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$prijs = number_format($rijuitjedatabase['prijs'], 2, ',', ' ');
echo $prijs;

en wat komt er dan uit?


Ik heb precies hoe je aan mij hebt uitgelegd, wat komt tussen []? Dat heb ik namelijk nog niet uitgeprobeert. Webshop is 90 procent in class gemaakt.

Toevoeging op 30/01/2014 13:53:22:

Dit is een hele lange class met addons en winkelwagen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sel_menu
= "SELECT id, menu_name, menu_category, menu_type, menu_price, menu_description, menu_popular_dish, menu_spicy, menu_photo FROM ".$CFG['table']['restaurant_menu']." WHERE restaurant_id = '".$restaurantid."' AND menu_category = '".$catid."' AND status = '1' ".$cond." ORDER BY menu_category ASC ";
#echo $sel_menu;
//$res_menu = $this->ExecuteQuery($sel_menu,'select');

echo number_format($sel_menu['SELECT'], 2, ',', ' ');
#echo "<pre>";print_r($res_menu);echo "</pre>";
$objSmarty->assign("categoryMenuList", $res_menu);
?>


- Aar -:
In overleg de code ingekort.
Gewijzigd op 02/02/2014 20:51:27 door - Ariën -
 
Michael -

Michael -

30/01/2014 13:53:35
Quote Anchor link
tussen [] is de naam van het veld dat je ophaalt
Hoe het precies bij een class zit weet ik niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$row = $mysqli->query('SELECT product,prijs,omschrijving FROM producten');

echo $row['product'];
echo $row['omschrijving'];
echo number_format($row['prijs'], 2, ',', ' ');

Edit:

Bij jou is dat menu_price of offer_price o.i.d.
Gewijzigd op 30/01/2014 13:56:53 door Michael -
 
Johan de wit

johan de wit

30/01/2014 13:58:19
Quote Anchor link
Michael - op 30/01/2014 13:53:35:
tussen [] is de naam van het veld dat je ophaalt
Hoe het precies bij een class zit weet ik niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$row = $mysqli->query('SELECT product,prijs,omschrijving FROM producten');

echo $row['product'];
echo $row['omschrijving'];
echo number_format($row['prijs'], 2, ',', ' ');

Edit:

Bij jou is dat menu_price of offer_price o.i.d.

Oke ik snap het al zal het proberen dankjewel.
Dan heb ik nog een vraagje, moet ik dit bij elke bedragen en totale bedragen of is bij totale bedragen niet noodzakelijk?
Gewijzigd op 30/01/2014 14:01:32 door johan de wit
 
Michael -

Michael -

30/01/2014 14:03:48
Quote Anchor link
Johan de wit op 30/01/2014 13:58:19:
Michael - op 30/01/2014 13:53:35:
tussen [] is de naam van het veld dat je ophaalt
Hoe het precies bij een class zit weet ik niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$row = $mysqli->query('SELECT product,prijs,omschrijving FROM producten');

echo $row['product'];
echo $row['omschrijving'];
echo number_format($row['prijs'], 2, ',', ' ');

Edit:

Bij jou is dat menu_price of offer_price o.i.d.

Oke ik snap het al zal het proberen dankjewel.
Dan heb ik nog een vraagje, moet ik dit bij elke bedragen en totale bedragen of is bij totale bedragen niet noodzakelijk?

Alle bedragen die jij wilt hebben met een komma. Lijkt me netjes om het allemaal het zelfde te doen. Bij elkaar op tellen (totaal) doe je natuurlijk met een punt om vervolgens om te zetten naar een komma.
 
Johan de wit

johan de wit

30/01/2014 14:08:21
Quote Anchor link
Michael - op 30/01/2014 14:03:48:
Johan de wit op 30/01/2014 13:58:19:
Michael - op 30/01/2014 13:53:35:
tussen [] is de naam van het veld dat je ophaalt
Hoe het precies bij een class zit weet ik niet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$row = $mysqli->query('SELECT product,prijs,omschrijving FROM producten');

echo $row['product'];
echo $row['omschrijving'];
echo number_format($row['prijs'], 2, ',', ' ');

Edit:

Bij jou is dat menu_price of offer_price o.i.d.

Oke ik snap het al zal het proberen dankjewel.
Dan heb ik nog een vraagje, moet ik dit bij elke bedragen en totale bedragen of is bij totale bedragen niet noodzakelijk?

Alle bedragen die jij wilt hebben met een komma. Lijkt me netjes om het allemaal het zelfde te doen. Bij elkaar op tellen (totaal) doe je natuurlijk met een punt om vervolgens om te zetten naar een komma.


Nogmaals bedankt. Je hoort van mij nog als het gelukt is en ook als het niet werkt.
 
Obelix Idefix

Obelix Idefix

30/01/2014 18:19:24
Quote Anchor link
Offtopic: het steeds volledig quoten van een reactie is niet echt zinvol.
Het maakt het topic onnodig lang en lastig om te zien waar wordt gereageerd.

Denk je dat 1100+ regels allemaal relevante code is? ;-)
 
Johan de wit

johan de wit

31/01/2014 00:59:47
Quote Anchor link
Obelix en idefix zoals je weet ben ik hier nieuw, 24 uur is niet eens vol maar goed ik zal daar aan denken dankjewel.

Ik dacht hoe meer hoe beter het is want dadelijk haal ik een deecode weg wat juist nodig is.
 
Johan de wit

johan de wit

02/02/2014 14:44:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$sel_menu = "SELECT id, menu_name, menu_category, menu_type, menu_price, menu_description, menu_popular_dish, menu_spicy, menu_photo FROM ".$CFG['table']['restaurant_menu']." WHERE restaurant_id = '".$restaurantid."' AND menu_category = '".$catid."' AND status = '1' ".$cond." ORDER BY menu_category ASC ";
        #echo $sel_menu;
        $res_menu =  $this->ExecuteQuery($sel_menu,'select');
        //echo number_format($sel_menu['SELECT'], 2, ',', ' ');
        echo number_format($sel_menu['menu_price'], 2, ',', ' ');
        #echo "<pre>";print_r($res_menu);echo "</pre>";
        $objSmarty->assign("categoryMenuList", $res_menu);


Ik krijg een foutmelding en dat krijg ik niet weg.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: number_format() expects parameter 1 to be double, string given in


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$sel_menu = "SELECT id, menu_name, menu_category, menu_type, menu_price, menu_description, menu_popular_dish, menu_spicy, menu_photo FROM ".$CFG['table']['restaurant_menu']." WHERE restaurant_id = '".$restaurantid."' AND menu_category = '".$catid."' AND status = '1' ".$cond." ORDER BY menu_category ASC ";
        #echo $sel_menu;
        $res_menu =  $this->ExecuteQuery($sel_menu,'select');
        //echo number_format($sel_menu['SELECT'], 2, ',', ' ');
        echo number_format($res_menu['menu_price'], 2, ',', ' ');
        #echo "<pre>";print_r($res_menu);echo "</pre>";
        $objSmarty->assign("categoryMenuList", $res_menu);


Hiermee krijg ik 0,00
Gewijzigd op 02/02/2014 14:56:18 door johan de wit
 
- SanThe -

- SanThe -

03/02/2014 21:04:26
Quote Anchor link
Dit: $sel_menu['menu_price'] is blijkbaar een string en geen getal.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.