php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-07-2014, 11:19
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard Preisberechnung mit Saisonzeiten

Hallo zusammen,

ich brauche eure Hilfe!

Ich habe eine DB in der Saisozeiten zu einem Reiseziel gespeichert werden.
Datumsformat ist DATETIME in der DB.

Dort wird das Start bzw. Enddatum einer jeden Saison gesichert.

Saison A (2014-01-01/2014-06-22)
Saison B (2014-06-23/2014-08-02)
Saison C (2014-08-03/2014-12-31)

Der User kann anfangs ein Anreisedatum wählen. Nehmen wir den 26.07.2014 an und eine Reisedauer von 14 Tagen. Somit liegt die Reise in Saison B(7 Tage) und C (7 Tage).

So jetzt das eigentlich Problem. Wie kann ich es realisieren, dass nun nur 7 Tage aus Saison B abgefragt werden und die weiteren 7 Tage aus Saison C?

Ich stehe sowas von auf dem Schlauch! BETWEEN fällt ja weg?
Mit Zitat antworten
  #2 (permalink)  
Alt 28-07-2014, 20:22
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Ich versteh nicht ganz, was du möchtest. Wie sieht das gewollte Ergebnis der Datenbankabfrage aus?
Mit Zitat antworten
  #3 (permalink)  
Alt 28-07-2014, 20:59
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Naja steht ja da. Ich brauche eine Abfrage die mir Ergebnisse Saisonübergreifend liefert.
Mit Zitat antworten
  #4 (permalink)  
Alt 28-07-2014, 21:01
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Und wie sieht so ein Ergebnis aus? Und wie sieht die Datenstruktur aus?
Mit Zitat antworten
  #5 (permalink)  
Alt 28-07-2014, 21:07
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Und wie sieht so ein Ergebnis aus? Und wie sieht die Datenstruktur aus?
Ergebnis suche ich ja.

Struktur:
Id int 11
Name
Beginn datetime
Ende datetime

Beginn ist das Startdatum einer saison
Mit Zitat antworten
  #6 (permalink)  
Alt 28-07-2014, 21:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nitroox Beitrag anzeigen
Ergebnis suche ich ja.
Als Programmierer musst du ja eine Vorstellung davon haben, wie das Ergebnis aussehen muss. Und das poste bitte.
Mit Zitat antworten
  #7 (permalink)  
Alt 28-07-2014, 21:22
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Als Programmierer musst du ja eine Vorstellung davon haben, wie das Ergebnis aussehen muss. Und das poste bitte.
Wie oben bereits geschrieben habe ich in der DB, 3 Saisonzeinte mit Start bzw. Enddatum im DATETIME Format.

Der User wählt anfangs ein Datum aus z.b. 26.07.2014 mit einer Reisedauer von 14 Tagen.

Somit würde in diesem Fall 7 Tage in die Saison 1 fallen und 7 Tage in die 2 Saison.

Ich möchte lediglich die Ausgabe der Tage in der jeweiligen Saison haben, damit ich diese für die Preisabfrage weiterverwenden kann.
Mit Zitat antworten
  #8 (permalink)  
Alt 28-07-2014, 21:25
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nitroox Beitrag anzeigen
Wie oben bereits geschrieben habe ich in der DB, 3 Saisonzeinte mit Start bzw. Enddatum im DATETIME Format.

Der User wählt anfangs ein Datum aus z.b. 26.07.2014 mit einer Reisedauer von 14 Tagen.

Somit würde in diesem Fall 7 Tage in die Saison 1 fallen und 7 Tage in die 2 Saison.
Bitte nicht beschreiben, sondern das Ergebnis posten! Das sagt mehr als 1000 Worte.

Zitat:
Zitat von nitroox Beitrag anzeigen
Ich möchte lediglich die Ausgabe der Tage in der jeweiligen Saison haben, damit ich diese für die Preisabfrage weiterverwenden kann.
Und ich kann mir überhaupt nicht vorstellen, was du darunter verstehst. Also bitte das gewünschte Ergebnis posten!
Mit Zitat antworten
  #9 (permalink)  
Alt 28-07-2014, 21:27
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Bitte nicht beschreiben, sondern das Ergebnis posten! Das sagt mehr als 1000 Worte.



Und ich kann mir überhaupt nicht vorstellen, was du darunter verstehst. Also bitte das gewünschte Ergebnis posten!
Das Ergebnis steht doch da? Die Abfrage fehlt ja bzw. Der Weg zum Ergebnis.
Das ist ja der Punkt wo ich Hilfe brauche.

Ergebnis wäre :

Saison 1: 7tage
Saison 2: 7tage

Dies ist wichtig da die Saisonzeiten verschiedene Preise haben
Mit Zitat antworten
  #10 (permalink)  
Alt 28-07-2014, 21:50
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Ich würde vorschlagen, du überlegst dir erst mal eine Query die ermittelt, in welche Saisons die Buchung überhaupt fällt, das ist nicht so schwierig – wenn dir nicht klar ist, welche Überschneidungen zwischen Start- und Enddatum der Buchung und der Saisons zu überprüfen sind, dann male dir die möglichen Fälle mal auf ein Blatt Papier auf.

(Wie viele Tage es pro Saison sind, darüber kann man sich dann anschließend Gedanken machen.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 28-07-2014, 22:17
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.576
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Code:
CREATE TABLE season (
  id int(11) NOT NULL AUTO_INCREMENT,
  label char(1) NOT NULL,
  begin_date date NOT NULL,
  end_date date NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO season (id, label, begin_date, end_date) VALUES
(1, 'A', '2014-01-01', '2014-06-22'),
(2, 'B', '2014-06-23', '2014-08-02'),
(3, 'C', '2014-08-03', '2014-12-31');
Code:
mysql> SET @begin_day = DAYOFYEAR('2014-07-26');
Query OK, 0 rows affected (0.00 sec)

mysql> SET @end_day = @begin_day + 14;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT
    ->     label,
    ->     (
    ->         DAYOFYEAR(end_date)
    ->         - (DAYOFYEAR(begin_date) - 1)
    ->         - IF((DAYOFYEAR(begin_date) - 1) < @begin_day, @begin_day - DAYOFYEAR(begin_date) + 1, 0)
    ->         - IF(DAYOFYEAR(end_date) > @end_day, DAYOFYEAR(end_date) - @end_day, 0)
    ->     ) AS count_days
    -> FROM
    ->     season
    -> HAVING
    ->     count_days > 0;
+-------+------------+
| label | count_days |
+-------+------------+
| B     |          7 |
| C     |          7 |
+-------+------------+
2 rows in set (0.00 sec)
Mit Zitat antworten
  #12 (permalink)  
Alt 29-07-2014, 09:51
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

@h3ll

Deine Lösung dürfte bei einem jahresübergreifendem Reisedatum noch Probleme bereiten.
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #13 (permalink)  
Alt 29-07-2014, 20:20
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Hat denn vielliecht noch jemand eine Idee?
Mit Zitat antworten
  #14 (permalink)  
Alt 29-07-2014, 20:23
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

Ich hab eine funktionierende Lösung in der Schublade und h3ll ist mit Sicherheit auch in der Lage das Jahresproblem zu lösen.

Wie sieht es mit eigenen Versuchen von dir aus?
__________________
Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Mit Zitat antworten
  #15 (permalink)  
Alt 29-07-2014, 20:26
nitroox
 Registrierter Benutzer
Links : Onlinestatus : nitroox ist offline
Registriert seit: Aug 2009
Beiträge: 30
nitroox befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Quetschi Beitrag anzeigen
Ich hab eine funktionierende Lösung in der Schublade und h3ll ist mit Sicherheit auch in der Lage das Jahresproblem zu lösen.

Wie sieht es mit eigenen Versuchen von dir aus?
Ich denke, dass ich dem ganzen zu kompliziert dran gehe.

Derzeit gehe ich mit einer for-schleife alles durch und zähle eine Variable hoch... Aber nicht die feine Art denke ich
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Javascript] Preisberechnung Problem Sepper HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 23-01-2006 20:25
Preis aus verschieden Saisonzeiten thorei PHP Developer Forum 12 12-12-2005 10:54
problem mit preisberechnung ChaoZKater PHP Developer Forum 15 18-02-2005 16:17

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:23 Uhr.