login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[OPGELOST] totaalprijs berekenen

Offline Stefan14 - 14/07/2006 13:16 (laatste wijziging 14/07/2006 15:37)
Avatar van Stefan14PHP gevorderde ik ben bezig met een script om de totaalprijs te berekenen van een aantal artikelen.
Het probleem is enkel het volgende:
- Ieder 5e artikel is gratis (dus ook 10e, 15e enz.)
- Er zijn 3 verschillende soorten artikelen, per soort kosten ze hetzelfde.
- Het 5e artikel is alleen gratis als het 5 artikelen van dezelfde soort zijn.

Nu kom ik hier niet helemaal uit. ik heb onderstaand script geschreven, maar hier komt een heel groot min bedrag uit. (-307,50 terwijl het 19,50 moet zijn.)

ik ben dus aan het proberen gegaan om per artikelsoort een variabele korting aan te maken en deze dan van het totaalbedrag af te trekken, maar dit is niet de goede manier denk ik.

  1. <?php
  2. while ($row1 = mysql_fetch_array($result1))
  3. {
  4. $query2 = "SELECT naam,genre,soort FROM films WHERE id=".$row1['filmID'];
  5. $result2 = mysql_query($query2) or die (mysql_error());
  6. $row2 = mysql_fetch_array($result2);
  7.  
  8. $query3 = "SELECT * FROM prijzen WHERE id=1";
  9. $result3 = mysql_query($query3) or die (mysql_error());
  10. $row3 = mysql_fetch_array($result3);
  11.  
  12. if ($row2['soort'] == 'Weekfilm')
  13. {
  14. $prijs = $row3['weekfilm'];
  15. $aantaldagen = $row3['aantaldagenweek'];
  16. }
  17. elseif($row2['soort'] == 'Max Deal')
  18. {
  19. $prijs = $row3['maxdeal'];
  20. $aantaldagen = $row3['aantaldagendeal'];
  21. }
  22. elseif($row2['soort'] == 'Max New')
  23. {
  24. $prijs = $row3['maxnew'];
  25. $aantaldagen = $row3['aantaldagennew'];
  26. }
  27. else
  28. {
  29. $prijs = '-';
  30. $aantaldagen = '-';
  31. }
  32.  
  33. echo('<tr><td width="40%" align="left">'.$row2['naam'].'</td>
  34. <td width="10%" align="left">'.$row2['genre'].'</td>
  35. <td width="10%" align="left">'.number_format($prijs, 2, ',', '.').'</td>
  36. <td width="10%" align="left">'.$aantaldagen.'</td></tr>');
  37.  
  38. if ($row2['soort'] == 'Weekfilm')
  39. {
  40. $aantalweekfilms = $aantalweekfilms + 1;
  41. }
  42. elseif ($row2['soort'] == 'Max Deal')
  43. {
  44. $aantaldealfilms = $aantaldealfilms + 1;
  45. }
  46. elseif ($row2['soort'] == 'Max New')
  47. {
  48. $aantalnewfilms = $aantalnewfilms + 1;
  49. }
  50.  
  51. if ($aantalweekfilms%5 == 0)
  52. {
  53. $kortingweekfilms = $kortingweekfilms + $row3['weekfilm'];
  54. }
  55. if ($aantaldealfilms%5 == 0)
  56. {
  57. $kortingdealfilms = $kortingdealfilms + $row3['maxdeal'];
  58. }
  59. if ($aantalnewfilms%5 == 0)
  60. {
  61. $kortingnewfilms = $kortingnewfilms + $row3['maxnew'];
  62. }
  63. $totaalprijs += $prijs - $kortingweekfilms - $kortingdealfilms - $kortingnewfilms;
  64. }
  65. ?>


EDIT: $row3['Weekfilm/Max Deal/Max New'] is de prijs van het soort artikel. ieder soort kost namelijk hetzelfde.

EDIT2: ik kwam net op het idee om de variabelen korting af te drukken, en ik ben erachter gekomen dat de korting voor de weekfilms wel goed werkt, maar er ligt 1 deal in, en geen new.
Maar allebei die variabelen bevatten wel een (behoorlijk) kortingsbedrag.
ik snap het niet meer 

EDIT3: ik heb de variabelen geechoëd die het aantal films bijhouden, en die kloppen ook, en worden op het juiste moment opgeteld e.d. daar ligt het dus ook niet aan.

wel heb ik het min bedrag al wat omlaag gekregen door de kortingen niet in de while loop van het totaalbedrag af te trekken, maar dit erbuiten te doen.

LAATSTE EDIT: ik heb het nu zelf opgelost door heel veel te proberen en te doen. dit is de uiteindelijke code geworden.

  1. <?php
  2. while ($row1 = mysql_fetch_array($result1))
  3. {
  4. $query2 = "SELECT naam,genre,soort FROM films WHERE id=".$row1['filmID'];
  5. $result2 = mysql_query($query2) or die (mysql_error());
  6. $row2 = mysql_fetch_array($result2);
  7.  
  8. $query3 = "SELECT * FROM prijzen WHERE id=1";
  9. $result3 = mysql_query($query3) or die (mysql_error());
  10. $row3 = mysql_fetch_array($result3);
  11.  
  12. if ($row2['soort'] == 'Weekfilm')
  13. {
  14. $prijs = $row3['weekfilm'];
  15. $aantaldagen = $row3['aantaldagenweek'];
  16. }
  17. elseif($row2['soort'] == 'Max Deal')
  18. {
  19. $prijs = $row3['maxdeal'];
  20. $aantaldagen = $row3['aantaldagendeal'];
  21. }
  22. elseif($row2['soort'] == 'Max New')
  23. {
  24. $prijs = $row3['maxnew'];
  25. $aantaldagen = $row3['aantaldagennew'];
  26. }
  27. else
  28. {
  29. $prijs = '-';
  30. $aantaldagen = '-';
  31. }
  32.  
  33. echo('<tr><td width="40%" align="left">'.$row2['naam'].'</td>
  34. <td width="10%" align="left">'.$row2['genre'].'</td>
  35. <td width="10%" align="left">'.number_format($prijs, 2, ',', '.').'</td>
  36. <td width="10%" align="left">'.$aantaldagen.'</td></tr>');
  37.  
  38. if ($row2['soort'] == 'Weekfilm')
  39. {
  40. $aantalweekfilms = $aantalweekfilms + 1;
  41. }
  42. elseif ($row2['soort'] == 'Max Deal')
  43. {
  44. $aantaldealfilms = $aantaldealfilms + 1;
  45. }
  46. elseif ($row2['soort'] == 'Max New')
  47. {
  48. $aantalnewfilms = $aantalnewfilms + 1;
  49. }
  50.  
  51. $totaalprijs += $prijs;
  52. }
  53.  
  54. if ($aantalweekfilms == '')
  55. {
  56. $aantalweekfilms = 0;
  57. }
  58. if ($aantaldealfilms == '')
  59. {
  60. $aantaldealfilms = 0;
  61. }
  62. if ($aantalnewfilms == '')
  63. {
  64. $aantalnewfilms = 0;
  65. }
  66.  
  67. if ($aantalweekfilms != 0)
  68. {
  69. if ($aantalweekfilms%5 == 0)
  70. {
  71. $kortingweekfilms = $kortingweekfilms + $row3['weekfilm'];
  72. }
  73. }
  74. if ($aantaldealfilms != 0)
  75. {
  76. if ($aantaldealfilms%5 == 0)
  77. {
  78. $kortingdealfilms = $kortingdealfilms + $row3['maxdeal'];
  79. }
  80. }
  81. if ($aantalnewfilms != 0)
  82. {
  83. if ($aantalnewfilms%5 == 0)
  84. {
  85. $kortingnewfilms = $kortingnewfilms + $row3['maxnew'];
  86. }
  87. }
  88. $totaalprijs = $totaalprijs - $kortingweekfilms - $kortingdealfilms - $kortingnewfilms;
  89.  
  90. echo('<tr><td colspan="4">&nbsp;</td></tr>');
  91. echo('<tr><td><b>Aantal Films: '.mysql_num_rows($result1).'</b></td></tr>');
  92. echo('<tr><td><b>Totaalprijs: &euro; '.number_format($totaalprijs, 2, ',', '.').'</b></td></tr>');
  93. echo('</table>');
  94. ?>

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.226s