een (,) vervangen door een (.)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas

thomas

20/11/2009 14:35:00
Quote Anchor link
Goedendag ik heb een vraag.
ik heb dit in de db staan 0,05863

Nu wil ik dat die nul door een punt wordt vervangen in de output.
hoe kan ik dit voor elkaar krijgen.

Heb het al zo geprobeerd
str_replace('/,/','.',$round);
maar dan slikt ie het nog niet
 
PHP hulp

PHP hulp

29/03/2024 13:22:23
 
Arnold C

Arnold C

20/11/2009 14:46:00
Quote Anchor link
Ik neem aan de komma door een punt vervangen zoals in je onderwerp:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  
   $test
= str_ireplace(",", ".", "1,23");
   echo $test;
  
?>
Gewijzigd op 01/01/1970 01:00:00 door Arnold C
 
Thomas

thomas

20/11/2009 14:59:00
Quote Anchor link
Ke je voorbeeld werk goed.
Alleen mijn output zegt dit 0.0
ipv 0.05863

Kan dit komen omdat er in de db een (,) staat ipv een (.)
dit is mijn code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sql
= mysql_query("SELECT * FROM week42 WHERE Agentnaam = '".$_GET['naam']."'") or die (mysql_error());
    while($get = mysql_fetch_assoc($sql))
    {

        $round = substr(round($get['Idle'],3),3);
        $repl = str_ireplace(',','.',$round);
        $rep = number_format($repl / 10,1);
        echo $rep;
    }

?>


als ik die (,) verander in de db naar een (.) dan laat ie het getal wel zien.
Gewijzigd op 01/01/1970 01:00:00 door thomas
 
- SanThe -

- SanThe -

20/11/2009 15:03:00
Quote Anchor link
Een komma hoort nooit in een getal alléén in de weergave.
Een getal stopt dan ook bij de komma.

Edit: Waarom al die /// in de str_ireplace()?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Thomas

thomas

20/11/2009 15:08:00
Quote Anchor link
geen idee vervangen door geen //.
dus het is niet op te lossen door de (,) in de db te laten zitten?

het gaat namelijk om dit iemand upload via navicat een excel sheet.
en daar staan de getallen met een (,) en dat gaat dus als ik het begrijp
niet werken?
Gewijzigd op 01/01/1970 01:00:00 door thomas
 
- SanThe -

- SanThe -

20/11/2009 15:19:00
Quote Anchor link
Nee, getallen hebben alleen eventueel een punt er in. Als het met een komma in de database staat heb je een verkeerd datatype.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Thomas

thomas

20/11/2009 15:31:00
Quote Anchor link
Ja dat kan maar ik hebt het probleem wel opgelost met wat ik bedoel.
deze code staat in de db
0,141

Met deze code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$t
= str_ireplace(",",".",$get['Available %']);
$a = round($t,3);
$b = substr($a,2,-1);
echo $b;
?>

Krijg ik nu wel dit
14 en dat is wat ik wou hebben.
 
- SanThe -

- SanThe -

20/11/2009 15:34:00
Quote Anchor link
En wat is dit? 'Available %'
Als dat een veldnaam uit de database is ben je lekker bezig.
 
Thomas

thomas

20/11/2009 15:39:00
Quote Anchor link
Ja dat is een veldnaam
dit komt omdat de velden worden geimporteerd van een excel sheet uit
en daar heet het kopje 'Available %'.
en wat er in de excel sheet staat komt weer uit een mirosoft sql database
en die db wordt bij gehouden door hoelang je beschikbaar bent aan de telefoon.

dit is voor een callcenter.
Gewijzigd op 01/01/1970 01:00:00 door thomas
 
- SanThe -

- SanThe -

20/11/2009 15:46:00
Quote Anchor link
Nou, dan kan ik je alleen nog veel succes wensen met dat soort ongein.
 
Thomas

thomas

20/11/2009 15:52:00
Quote Anchor link
Bestaat er een reden voor dan om het niet zo te doen?
zo ja laat het me weten.
kan ik het misschien anders doen.
 
- SanThe -

- SanThe -

20/11/2009 16:04:00
Quote Anchor link
Zo'n veldnaam zal niet werken, alleen als je de beruchte backtics gaat gebruiken. Een fatsoenlijke veld/kolomnaam bestaat uit letters, cijfers (niet als eerste) en eventueel een underscore.

Als je een getal met een komma in de database kunt zetten is dat geen getal, maar tekst. Als je er ooit mee wilt gaan rekenen of sorteren, kan je dat wel vergeten.
 
Thomas

thomas

20/11/2009 16:11:00
Quote Anchor link
er staan geen backticks bij.
het getal wordt idd niet als een int maar als een varchar opgeslagen.
Verder hoeft er met de getallen niks gedaan te worden.

Het zijn namelijk tijden voor de werknemers.
zodat zij aan het einde van de week kunnen zien.
hoeveel ze beschikbaar zijn geweest en hoevaak ze extra pauze's hebben
gehouden enz.
 
Wesley Overdijk

wesley Overdijk

20/11/2009 16:16:00
Quote Anchor link
number_format()?
 
- SanThe -

- SanThe -

20/11/2009 16:16:00
Quote Anchor link
Je hoeft het niet te verdedigen. Het is jouw script. Als er ooit problemen door ontstaan zijn het ook jouw problemen. Ik waarschuw alleen maar.

Edit: Een veldnaam met een spatie er in zal niet werken zonder backtics.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 

20/11/2009 16:22:00
Quote Anchor link
thomas schreef op 20.11.2009 16:11:
Het zijn namelijk tijden voor de werknemers.
zodat zij aan het einde van de week kunnen zien.
hoeveel ze beschikbaar zijn geweest en hoevaak ze extra pauze's hebben
gehouden enz.

Tyfus man. Jij moet gewoon luisteren naar SanThe die weet hoe het zit. Niet eigenwijs wezen. Als je weet hoe het moet dan moet je hier niet komen zeiken.
Je hoort als het tijden zijn gewoon het juiste type te gebruiken TIME of DATETIME. En niks anders.
Misschien wil je er nu nog niks mee doen, maar misschien krijg je later de vraag om een hele ingewikkelde query te maken (gemiddeld aantal uren gewerkt door een werknemer o.i.d.) dat kan met dat stomme / domme / idiote / lompe / sukkelige geklooi niet.
En leer dan gelijk:
http://phptuts.nl/view/1
Waarschijnlijk moet jij ook nog wel de volgende leren:
http://phptuts.nl/view/39
http://phptuts.nl/view/41
dat zal vast en zeker ook nog niet goed zijn.
 
Thomas

thomas

20/11/2009 16:30:00
Quote Anchor link
Ik verdedig mij maar weer eens even.
Sorry hoor je hoeft niet te schelden.
het zij geen tijden zoals 16:24
Maar tijden in procenten

Laten we zeggen je hebt 4 uur aan de tel gezeten.
van die 4 uur is 2 uur pauze gehad
dus kom je op een available tijd van 50% te staan.

en dit gaat niet zoals jullie denken.
het gaat namelijk zo
mensen die aan de tel zitten worden gemonitord.
dan wordt het in een MS sql db weggeschreven.
dan wordt het met excel weer uit die db weggehaald
en ik moet het weer importeren naar een mysql db.
dit omdat ik geen rechten heb tot het bedrijf database.

@karl:
die tijden zijn al gemiddeld.

Maar goed alle problemen die ik had zijn verholpen.
dus laten we het hierbij.

@santhe in iedergeval bedankt voor je tips.
mijn andere db zijn normaal.
Gewijzigd op 01/01/1970 01:00:00 door thomas
 
Wesley Overdijk

wesley Overdijk

20/11/2009 16:53:00
Quote Anchor link
eui eui eui.... Thomas ouwe pannenkoek. Hoe dan ook hoor je te werken met vaste tijden. met die tijden reken je dan maar uit hoeveel procent iemand beschikbaar was. dat is handig, want dan kan je het later gebruiken voor andere rare ideën die je wss krijgt.
Gewijzigd op 01/01/1970 01:00:00 door wesley Overdijk
 
Thomas

thomas

20/11/2009 17:22:00
Quote Anchor link
@wesley
Zeg jij dat tegen de baas van nederlands grootste telecombedrijf.
die werken omslachtig en daardoor moet ik ook omslachtig werken.

Maar wil geen discusie topic hebben wat wel of wat niet goed is,
Het belangerijkste is nu dat het werkt zoals ik het wil en mijn meerdere het wil hebben.

Met vriendelijke groet.
 



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.