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)
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)
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)
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)
Du hast $array[1] eingesetzt.
Siehe dazu auch:
http://www.mysql.de/doc/de/Function_Index.html7.
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)
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)
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