[php] probleempje valuta rekenen*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het volgende script heb ik ergens vandaan gehaald om een real-time valutakoers te hebben voor Dollars en Ponden.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<? 
$type = array( "US Dollar", "British Pound"); 
     
$money[0]=file('http://quote.yahoo.com/m5?a=1&t=USD&s=EUR'); 
$money[1]=file('http://quote.yahoo.com/m5?a=1&t=GBP&s=EUR'); 

for($i=0; $i<sizeof($money); $i++){ 
   $money[$i] = join("",$money[$i]); 
   $money[$i] = ereg_replace(".*<table border=1 cellpadding=2 cellspacing=0>",'',$money[$i]); 
   $money[$i] = ereg_replace("</table>.*",'',$money[$i]); 
   $money[$i] = ereg_replace("</b>.*",'',$money[$i]); 
   $money[$i] = ereg_replace(".*<b>",'',$money[$i]); 
   echo  "1 Euro = ".$money[$i]." ".$type[$i]."<br>\n";   
} 
?> 


werkt heel goed, alleen ik ben niet handig genoeg hierin om dit aan te passen naar wat ik nodig heb.

Ik wil gewoon een bedrag wat ik in euro in mijn database heb staan omrekenen naar dollars en ponden. Het volgende had ik daarom aan dit scriptje toegevoegd:

$usd=$money[0];
$gbp=$money[1];

Als ik vervolgens echo $usd en $gbp deed, kwam de goede waarde eruit, maar zodra ik deze twee gebruikte in een formule was de uitkomst dat het bedrag in USD gelijk was aan GBP, en dat klopt dus niet :)

Wat ik dus wil, is dat $usd en $gbp continu de juiste valutakoers bevatten. Mag ook op een andere manier, maar via die urls in dat script kunnen in ieder geval de juiste waardes worden opgehaald.

Kan iemand mij helpen? :?

[ Voor 11% gewijzigd door Verwijderd op 06-05-2003 12:26 ]


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Gebruik [ php] en [ /php] ;).

De fout zit hem dus niet in het stuk code dat jij post, maar in de berekening. Post die eens?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$usd=$money[0];
$gbp=$money[1];

while($data = mysql_fetch_array($resultset_TSP)) {
  $listprice_db = $data[$dbprijs];
  $listprice_eur = $listprice_db * 1.125;
  $listprice_usd = $listprice_eur * $usd;
  $listprice_gbp = $listprice_eur * $gbp;
  $discount = 0.2;
  $discprint = $discount * 100;
  $verrdiscount = 1 - $discount;
  $online_price_eur = $listprice_eur * $verrdiscount;
  $online_price_usd = $listprice_usd * $verrdiscount;
  $online_price_gbp = $listprice_gbp * $verrdiscount;
  $total_price_eur = $online_price_eur * $num_nodes;
  $total_price_usd = $online_price_usd * $num_nodes;
  $total_price_gbp = $online_price_gbp * $num_nodes;
};

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
lekker omslachtig he? :D

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
En welke zijn gelijk aan elkaar? Welke waardes gaat het om? Is de uitkomst van r. 5: $listprice_db = $data[$dbprijs]; wel goed??? Moet die $dbprijs niet zonder $ zijn?
Ben bang dat dit een beetje basic-debugwerk is. Zet gewoon een hoop echo's neer, en je zal de fout wel vinden denk ik.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Heb ff je titel aangepast :)

Weet je zeker dat de waarde van de $money elementen wel een getal zijn (en dan ook in zijn geheel. een spatie gevolgd door cijvers is nog steeds geen getal!)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Daar zeg je wat: niet zozeer het al dan niet bevatten van spaties e.d., maar kijk ook eens of je een punt of een komma als scheiding krijgt: stel je krijgt 1,1 en 1,8 terug, dan wordt (denk ik) de intvalue hiervan allebei 1 (omdat een , een niet-numeriek teken is, een . wel!), en zullen dus de berekeningen ook gelijk uitkomen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
die dbprijs klopt helemaal, de prijs in euro is goed en het script heeft al naar behoren gedraaid, alleen nu ik de boel wil omrekenen gaat het fout.

een echo van $usd geeft 1.13 en
een echo van $gbp geeft 0.70

snap er geen hout van :)

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Maar welke variabelen echo je nu en geven (dus) dezelfde waarde?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
degene die ik echo zijn $usd en $gbp:

PHP:
1
2
3
4
5
$usd=$money[0]; 
$gbp=$money[1];

echo "$usd <br>";
echo "$gbp <br>";



degene die ik gebruik in de berekening waar dezelfde waar uit komt zijn $usd en $gbp (toevallig he?):

PHP:
1
2
 $listprice_usd = $listprice_eur * $usd; 
 $listprice_gbp = $listprice_eur * $gbp;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
rofl!!!

PHP:
1
2
3
4
5
6
7
8
elseif($cur=="gbp") {
 $list_price_nl = number_format($listprice_usd, 2, ",", ".");
 $list_price_en = number_format($listprice_usd, 2, ".", ",");
 $online_price_nl = number_format($online_price_usd, 2, ",", ".");
 $online_price_en = number_format($online_price_usd, 2, ".", ",");
 $total_price_nl = number_format($total_price_usd, 2, ",", ".");
 $total_price_en = number_format($total_price_usd, 2, ".", ",");
}



bedankt voor jullie moeite
Pagina: 1