Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyliczaniem iloczynu 3-ech liczb
Forum PHP.pl > Forum > PHP
servs
Witam,

Mam takie coś:

  1. <?php
  2.  
  3. $url = 'http://xml.dgcsc.org/samples/SilverBE.xml';
  4. $xml = new SimpleXMLElement($url,null,true);
  5. $silver1 = $xml->xpath("/SilverPrice/GBP");
  6.  
  7. $query = mysql_query("SELECT * FROM `ps_product` WHERE `id_category_default` = 4");
  8.  
  9. while($row = mysql_fetch_array($query)){
  10. if($row['wholesale_price'] == 0){
  11. $margin = 1;
  12. } else{
  13. $margin = $row['wholesale_price']/100;
  14. }
  15. $prs = $row['weight'] * $sp * $margin;
  16. echo 'Złoto '.$row['id_product'].'('.$row['weight'].'g/'.$sp.'/'.$margin.') - nowa cena: '.$prs.'<br />';
  17. }
  18.  
  19. ?>


Skrypt ma za zadanie co jakiś czas zmieniać ceny poszczegołnych produktów w sklepie podpiętych pod kategorię o id 4.
Niestety z akażdym razem w wyniku dostaję 0 pomimo tego, że $row['weight'] w każdym przypadku jest większe od 0, $sp (zgodnie z danymi z xmla) też większe od 0 i $margin wszędzie wynosi 1.

Nie mam już do tego nerwów.

Ma ktoś pomysł o co tu chodzi?

Pozdrawiam.
minolone
Jesteś pewny że zmienna $sp jest większa od zera? XML-a pobierasz do zmiennej $silver1 i nic z nią więcej nie robisz, skoro pobierasz kurs GBP to powinieneś wykorzystać zmienną $silver1, zmienna ta jest tablica więc dosanie sie najszybszym sposobem to $silver1[0][0], a zmienna $sp w tym kodzie co podałeś nie będzie większa od 0.
servs
Przepraszam, wyciąłem z kodu niepotrzebne rzeczy.
Jest tam zapis $sp = $silver1[0][0];
minolone
Użyj typu danych dla zmiennych, np. dla $sp użyj (float), czyli $sp = (float)$silver1[0][0].
servs
Właśnie tak się zastanawiałem, czy nie można deklarować typu jak w C.

Wielkie dzięki! smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.