Rechnendes Anfrageforumular in PHP (Gastronomie)

Naja habs kapiert wie das gehen muss aber so weit sind meine php künste noch nicht fortgeschritten. Kann mir jemand bitte nähere Informationen oder ein Beispiel geben wie ich dies umzusetzen kann?
Das würde meine erste Schleife werden. Wahrscheinlich mit While oder?

mfg
 
Genau, While-Schleife hört sich schonmal gut an.
Du hast dann ja einen Anfangs- und einen Endzeitpunkt.
Diese beiden musst du dann in einen Timestamp verwandeln ..
Dann addierst du auf den Anfangszeitpunkt so lange 86400 (sekunden pro tag), bis der Endzeitpunkt erreicht ist.

In der While-Schleife selbst kannst du dann checken, ob der errechnete Timestamp in einer bestimmten Phase liegt.

Wenn du es immernoch nicht ganz verstanden hast, schreib ich dir morgen früh bei mir auf Arbeit ein kleines Beispiel. Jetzt hab ich leider keine Zeit mehr.

Melde mich dann!
 
So, hab dir mal ein kleines Testscript gemacht.

http://www.soehne-menkheefs.de/maggi/gastro.php

Hier kannst es mal testen:

Einfach in den 2 Textfeldern deinen Anreise- bzw Abreisetag eintragen..
Bitte in folgendem Format --> "JJJJ-MM-TT" ...

Code:

PHP:
<?php

$sent = $_POST["sent"];

// Erstmal legen wir das Array an, welches die verschiedenen Perioden beinhaltet
$phase[Hauptsaison] = "2007-07-01,2007-10-01,25";
$phase[Nebensaison] = "2007-10-02,2007-11-01,20";
$phase[Weihnachtszeit] = "2007-11-02,2007-12-31,50";

foreach($phase as $element => $d) {
    $daten = explode(",", $d);
    echo "Phase: ".$element."";
    echo "von ".date("d.m.Y", strtotime($daten[0]))." - ".date("d.m.Y", strtotime($daten[1]))."<hr noshade size='0' color='#000000'>";
    echo $daten[2].',00 € pro Übernachtung <br><br>';
}

if(isset($sent)) {
    
    $von = strtotime($_POST["von"]);
    $bis = strtotime($_POST["bis"]);
    
    $preis = 0;

    if(!isset($date)) {
        $date = $von-86400;
    }

    while($date < $bis) {
        $date = $date+86400;
    
        foreach($phase as $element => $d) {
            $daten = explode(",", $d);
            $phasevon = strtotime($daten[0]);
            $phasebis = strtotime($daten[1]);
        
            if(($date >= $phasevon) && ($date <= $phasebis)) {
                $preis += $daten[2];        
                echo ''.date("d.m.Y", $date). ' - <b>'.$daten[2].',00 €</b><br>';
            }
                
        }
    
    }
        
echo "Der Gesamtpreis liegt bei: ".$preis.",00 €<br><br>";
    
}

?>

<html>
    <head>
        <title>Preisrechner</title>
    </head>
    
    <form name="f" method="POST" action="<?php echo $PHP_SELF;?>">
        
        Von: <input type="text" name="von">
        Bis: <input type="text" name="bis">
        
        <input type="hidden" name="sent" value="1">
        
        <input type="submit" value="Rechnen">
        
    </form>
    
</html>
 
Ok erstmal riesen danke. Nun hab ich mal die Saisonzeiten richtig eingetragen. Und t TOP(Siehe: http://www.sonnleitn.at/phptest/sonnform/zeitenorg.php).

Nun aber noch einige fragen:

1.) Wie kann ich das Datumeingabeformat ändern. Am liebsten währen mir 3 Felder eines mit Tag(2stellig), eines mit Monat(2stellig) und eines mit Jahr (2-4stellig).
Sonst eben das einfache Deutsche eingabeformar mit TT.MM.JJJJ

2.) ICh möchte gerne Radiobuttons in mein Form mit einbauen. (z.B für Halbpension oder Frühstück). Wie programiert man solche mit ein. Also z.b Falls aktiviert +8€ pro Person
und Tag. Also woher weis php ob er angehakt ist oder nicht.

Danke schon mal im Vorraus
 
Das mit dem Datumsformat kannst du einfach machen, indem du 3 Dropdown-Menüs (select) mit HTML machst.

Beispiel:

HTML:
<select name="tag">
<option>1</option>
<option>2</option>
<option>3</option>
usw....
</select>

<select name="monat">
<option>1</option>
<option>2</option>
<option>3</option>
usw.....
</select>

<select name="jahr">
<option>2007</option>
<option>2008</option>
</select>
Das mit den Checkboxen ist auch nicht sonderlich schwer.
Du legst einfach eine Checkbox an und gibst dieser einen "value".

Beispiel:

HTML:
<input type="checkbox" name="fruehstueck" value="1">
<input type="checkbox" name="halbpension" value="1">
So kannst du diese Checkboxen dann in PHP abfangen:

PHP:
<?php

$fruehstueck = $_POST["fruehstueck"];
$halbpension = $_POST["halbpension"];

if(isset($fruestueck)) {
  // + 8 Euro
}

if(Isset($halbpension)) {
 // + 15 Euro
}
?>
Grüsse,

maeg
 
OK Danke! Das mit dem Checkboxen ist mir vollständig klar. Nur bei der Datumeingabe: Wie muss ich das in PHP schreiben damit es mit deinem Besipielscript t?

mfg
 
wenn du die drei variablen $day $month und $year übergibst,
kannst du diese zu dem string, den du brauchst, zusammen basteln..
zum beispiel:

$formatted = $year . "-" . $month . "-" . $day;

daraus wird dann in diesem beispiel, wenn man es ausgeben würde:

yyyy-mm-dd-> 2007-11-14 !das ist jetzt ein string!

hoffe das bringt dich weiter :o) aber ein kleiner rat, bevor du das online stellst, lies dich in php rammieren noch besser ein, danach solltest du dir unbedingt über das Absichern informieren, wie man zum Beispiel übergebene Variablen prüfen sollte.

Viel Erfolg! mfg softi
 
Zurück