Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Php Problem / Datum

Hallöle,

beschäftige mich seit ein paar Tagen mit PHP und hoffe Ihr könnt mir bei meinem Problem helfen, ich komme einfach nicht weiter.

Folgendes Problem:

per Formular wird ein Datum als Variable übergeben als Beispiel 12.01.2004

in einer MySQL Datenbank gibt es 2 Spalten von und bis in denen je ein Datum steht Beispiel von: 01.01.2004 / bis: 30.01.2004 es gibt 12 Reihen also für das ganze Jahr. Das Problem was ich nun habe, wie bekomme ich es mit PHP hin das mir die Daten aus dem Monat angezeigt werden wenn man den 12.01.2004 angibt. Weiß nicht weiter und meine Literatur hilft im Moment auch nicht viel.

Danke Euch schonmal für Eure Hilfe

Grüße

Hier gehts zum Orginal Eintrag "Php Problem / Datum" im Forum

Antworten

vielleicht mit regex den monat rausklauben und dann vergleichen


2.

Salut.

Zuerst verarbeitest Du mit PHP das angegebene Datum.
Wir nennen das einfach mal $datum = 01.01.2004
Mit der Funktion explode zerlegst Du die Zeichenkette anhand eines definierbaren Trennzeichens in Ihre "Einzelteile".
Code:                   In Zwischenablage kopieren (nur IE)
1">

Durch diese Anweisung, werden die einzelnen Datumsinformationen in dem Array namens "array" gespeichert.
In $array[1] wirst Du die angabe zum Monat finden ($array[0] = 01 | $array[1] = 01 | $array[2] = 2004)

Nun nimmst Du den Wert des Monats und suchst damit in der DB:

SELECT *
FROM tabelle
WHERE SUBSTRING( von_datum, 4, 2 ) = '$monat'

Damit solltest Du die benötigten Daten erhalten.


3.

alles klar das mit dem array ist ne gute idee hätte ich selber drauf kommen sollen, mir war nur explode nicht bekannt :-)

noch ne frage hinterher in der db stehen also zu jedem monat preise

wie kann ich es lösen das er mir die preise dann pro monat ausgibt und zwar am besten so das dies alles über variablen läuft damit ich später die tabellen abändern kann vielleicht mit mysql_fetch_array und wenn ja wie?

die tabelle sieht so aus

Code:                   In Zwischenablage kopieren (nur IE)
2">

Gruß


4.

Zitat:
klausilein postete
wie kann ich es lösen das er mir die preise dann pro monat ausgibt und zwar am besten so das dies alles über variablen läuft damit ich später die tabellen abändern kann vielleicht mit mysql_fetch_array und wenn ja wie?
Gruß
Ich glaube, die Frage hab ich nun nicht richtig verstanden...
Die Preise hast Du doch bereits und zwar durch die Selektion in der DB
SELECT * FROM table -> liest alle (= * ) Felder einer Tabelle aus, also auch die Preise.

Mit mysql_fetch_array gibst Du die Ergebnisse einer Datenbankabfrage in einem assoziativen Array zurück (bzw PHP :) )
(http://www.selfphp.info/funktionsreferenz/mysql_funktionen/mysql_fetch_array.php)

Aber was meinst Du nur mit "alles über variablen läuft" ?


5.

mmh die frage verstehe ich gerade selber nicht mehr, war vorhin wohl noch nicht ganz wach :-)

jau hab ich im moment auch so gelöst:

hab das datum mit explode als array zerlegt und dann kommt folgende anfrage an die db

Code:                   In Zwischenablage kopieren (nur IE)
3">

das problem was ich jetzt nur habe das er mir nur die preise angeben soll die für diesen Monat gültig sind im Moment gibt er halt alle Daten der db aus.


6.

Mhm, da stimmt was nicht, würde ich sagen.
Eigentlich sollte er nicht ALLE ausgeben, sondern nur die des auf das Suchkriterium passende Datum (<- ?)

Auf jeden Fall hast Du einen kleinen Fehler im Script:
Code:                   In Zwischenablage kopieren (nur IE)
4">

Du hast $array[1] eingesetzt.
Siehe dazu auch: http://www.mysql.de/doc/de/Function_Index.html


7.

und jetzt gibt er gar nichts mehr aus :-(


8.

ich möchte nicht unbedingt ablenken, aber trotzdem eben auf http://www.mysql.com/doc/en/Date_and_time_functions.html#IDX1394 hinweisen
Zitat:
MONTH(date)
Returns the month for date, in the range 1 to 12:

mysql> SELECT MONTH('1998-02-03');
-> 2
Ich hoffe doch mal, dass von und bis als DATE-Felder eingetragen sind (wenn nicht, ist eine gute Idee, die Felder umzuwandeln - nichts ist schlimmer, unpraktischer und langsamer als VARCHAR)
Code:                   In Zwischenablage kopieren (nur IE)
5">

evtl. ist http://php.net/checkdate auch etwas für Dich


9.

danke dir volker, das hat mich eben ein ganzes stück weiter gebracht


10.

noch ein kleiner tipp was mir am anfang die arbeit mit mysql sehr sehr erleichtert hat
arbeite nicht mit mysql_fetch_array sondern mit mysql_fetch_object

bsp:
====

Code:                   In Zwischenablage kopieren (nur IE)
6">

mfg
Michi


11.

danke auch dir shadowhunter, bin im moment ganz zufrieden, alles läuft bestens, danke euch für die prompte kompetente hilfe

grüße


Hier gehts zum Orginal Eintrag "Php Problem / Datum" im Forum
 
phpforum.de | Impressum | Handy Bundles