Autor Zpráva
L@mer
Profil *
Vytvořil jsem kalkulátor ceny ubytování v penzionu s kódem:
<?php
error_reporting(7);
 include ("config.php");
 $mezisoucet = $cenazanoc*$_POST["pocetnoci"];
 $soucet = $mezisoucet*$_POST["pocetosob"];
 echo "<b>Výsledná cena:</b>";
 echo ($soucet);
 echo "&nbsp; Kč</b>";
 echo "<br>";
 echo time();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">;
  <title>Kalkulátor</title>
  </head>
  <body>
   <hr>
   <br>
   <form action="kalkulacka.php" method="POST">
   <b>Počet nocí:</b><input type="text" name="pocetnoci"><br>
   <b>Počet osob:</b><input type="text" name="pocetosob"><br>
   <input type="submit" value="Vypočítat cenu!">
  </body>
</html>

---------------
Chtěl bych ho rozšířit. Potřebuji, aby dokázal rozlišit cenu o sezóně a mimo sezónu. Mám tu ale problém:
1. Jak ošetřit situaci, kdy by klient zadal skriptu údaje:
Sezóna je pro tento příklad srpen
Datum začátku pobytu: 27.7.2008
Datum konce pobytu: 5.8.2008
a samozřejmě i naopak (začátek pobytu v sezóně a konec mimo sezónu).
Jde o to, aby kalkulátor za pobyt mimo sezónu zaúčtoval určitou částku (např. 700 Kč / noc) a za pobyt v sezóně částku jinou (např. 1000 Kč / noc)

Věděl by někdo, jak na to?

Prosím, poraďte mi. Předem děkuji,
L@amer
Medvídek
Profil
Podmínkou :) Pokud se zadaný datum nachází období, tak konečná cena + 1000, pokud ne, tak 700
L@mer
Profil *
Díky moc. To mě nenapadlo
nightfish
Profil
řešil bych to tak, že bych si zadaný interval rozložil na jednotlivé dny, a ke každému si doplnil správnou cenu (podle toho, jestli je v sezóně nebo mimo)

šlo by to řešit třeba takhle: (samozřejmě pro více intervalů sezón by bylo potřeba to ještě upravit)

$od = "2008-07-27";
$do = "2008-08-05";
$sezonaOd = "2008-08-01";
$sezonaDo = "2008-08-31";
$dny = array();
for ($i = $od; $i <= $do; ) {
  $dny[] = $i;
  $d = strtotime($i);
  $i = date("Y-m-d", $d + 86400);
}

$dniSezona = 0;
$dniMimoSezonu = 0;
foreach ($dny as $v) {
  if (($v >= $sezonaOd) && ($v <= $sezonaDo)) $dniSezona++;
  else $dniMimoSezonu++;
}

$cenaCelkem = $dniSezona * 1000 + $dniMimoSezonu * 700;
echo "cena celkem: $cenaCelkem Kč";

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: