Fragen zu SELECT, PHP, MYSQL
#1 Fragen zu SELECT, PHP, MYSQL
Hi,
ich bin mal wieder ein wenig an meiner Homepage am Basteln und baue da nun ein Terminkalender ein. Das klappt auch alles. Eintragen, freischalten usw.
Nun möchte ich aber noch zusätzlich ein paar Sachen einbauen, zb. nur die Einträge eines bestimmten Monats anzeigen.
Mein Problem ist die SELECT Abfrage - das Datum ist in der DB als tt.mm.yyyy hinterlegt - ich mochte aber nur den Monat vergleichen.
also so in der art :
SELECT * FROM termine WHERE beginn(und hier irgendwie nur den Monat) ='$mon' ORDER BY id ASC
Hat einer ne Idee?
ich bin mal wieder ein wenig an meiner Homepage am Basteln und baue da nun ein Terminkalender ein. Das klappt auch alles. Eintragen, freischalten usw.
Nun möchte ich aber noch zusätzlich ein paar Sachen einbauen, zb. nur die Einträge eines bestimmten Monats anzeigen.
Mein Problem ist die SELECT Abfrage - das Datum ist in der DB als tt.mm.yyyy hinterlegt - ich mochte aber nur den Monat vergleichen.
also so in der art :
SELECT * FROM termine WHERE beginn(und hier irgendwie nur den Monat) ='$mon' ORDER BY id ASC
Hat einer ne Idee?
Gruß - Jan
#2
Grüsse
Thomas
Setup: T-Rex 600 CF, Strecker 330.30, Jazz 80-6-18, 3 x S9252,
Gy401 + S9254, Helitron Lipo Controller, SLS XTRON 4400mAh 6S1P, Futaba T8FG
Status: Schweben/Rundflug/Looping/Rolle/Flip
Thomas
Setup: T-Rex 600 CF, Strecker 330.30, Jazz 80-6-18, 3 x S9252,
Gy401 + S9254, Helitron Lipo Controller, SLS XTRON 4400mAh 6S1P, Futaba T8FG
Status: Schweben/Rundflug/Looping/Rolle/Flip
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#3 Re: Fragen zu SELECT, PHP, MYSQL
Klarhank hat geschrieben: Mein Problem ist die SELECT Abfrage - das Datum ist in der DB als tt.mm.yyyy hinterlegt - ich mochte aber nur den Monat vergleichen.
also so in der art :
SELECT * FROM termine WHERE beginn(und hier irgendwie nur den Monat) ='$mon' ORDER BY id ASC
Hat einer ne Idee?
SELECT *
FROM termine
WHERE beginn LIKE '%-$mon-%
ORDER BY id ASC
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#5
Oh, habe die Punkte übersehen.hank hat geschrieben:Guten Morgen,
vielen Dank - so gings: SELECT * FROM termine WHERE beginn LIKE '%.$mon.%' ORDER BY id ASC
Entweder verwendest Du keinen DATETIME, oder Dein Server ist falsch konfiguriert.
Ein ISO Datum sieht so aus:
"YYY-MM-DD HH:MM:SS"
#6
Anhäng...
Naja wär interessant wie ich einen User in Mysql das recht von Reload vergebe, die Option gibts nicht sichtbar ...
?
Oder wie vergebe ich richtige die rechte ??.. gibts wo ein deutsch tut ?..
Gruß
Richard
Naja wär interessant wie ich einen User in Mysql das recht von Reload vergebe, die Option gibts nicht sichtbar ...
Oder wie vergebe ich richtige die rechte ??.. gibts wo ein deutsch tut ?..
Gruß
Richard
derzeit: Sim
______________________________________________________
My Home http://www.reverbnation.com/bbmmp
"Aufgeben gibts nicht..."
".....oft findet man den Sieg in der Niederlage......
______________________________________________________
My Home http://www.reverbnation.com/bbmmp
"Aufgeben gibts nicht..."
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#7
Es gibt ein Feld "reload_priv"Richard hat geschrieben: Naja wär interessant wie ich einen User in Mysql das recht von Reload vergebe, die Option gibts nicht sichtbar ...?
#8
Ja - ist mir schon klar. Dieses Datum ist ein Datum, das der User über Form selbst eingibt. Da kann ich ja wohl schlecht erklären, man muss das Datum so reinschreiben - ok - ich könnte es umwandeln - aber so geht es jetzt ja auchtracer hat geschrieben:Oh, habe die Punkte übersehen.hank hat geschrieben:Guten Morgen,
vielen Dank - so gings: SELECT * FROM termine WHERE beginn LIKE '%.$mon.%' ORDER BY id ASC
Entweder verwendest Du keinen DATETIME, oder Dein Server ist falsch konfiguriert.
Ein ISO Datum sieht so aus:
"YYY-MM-DD HH:MM:SS"
Gruß - Jan
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#9
Ich würde das nochmal überdenken.hank hat geschrieben: Ja - ist mir schon klar. Dieses Datum ist ein Datum, das der User über Form selbst eingibt. Da kann ich ja wohl schlecht erklären, man muss das Datum so reinschreiben - ok - ich könnte es umwandeln - aber so geht es jetzt ja auch
MySQl biete eine Menge an mächtigen Funktionen zur Manipulation von Datumswerten.
Wenn Du den Datentyp nicht nutzt, verlierst Du die Möglichkeit, die MySQl Funktionen zu nutzen.
Das ist ungefähr wie Gas auf einem Schieberegler, es geht, aber ...
Einfach 2 kleine Funktionen in Script rein, und schon kann der User mit seinem "Bekannten" Format arbeiten, und MySQl mit dem nativen.
Code: Alles auswählen
function iso2ger($date)
{
return (substr($date, 8, 2) . "." . substr($date, 5, 2) . "." . substr($date, 0, 4) . " " . substr($date, 11, 5));
}
function ger2iso($date)
{
return (substr($date, 6, 4) . "-" . substr($date, 3, 2) . "-" . substr($date, 0, 2));
}
#10
Hmm, naja - ich nutze auch nicht jenen Datentyp. Ich speichere als int die Sekunden ab 1970 und gut. Hat mir bisher auch viel Arbeit erspart. z.B. bei nem Timeout einfach aktuelle Zeit (bzw. aktuelle Sekunden ab 1970) minus x Sekunden und der Rest ist im Timeout bzw. wird gelöscht etc. etc.Wenn Du den Datentyp nicht nutzt, verlierst Du die Möglichkeit, die MySQl Funktionen zu nutzen.
MFG,
speedy
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#12
Ich habe ein paar Standardfunktionen, die mir in Verbindung mit mktime() genau das ermöglichen.speedy hat geschrieben: Hmm, naja - ich nutze auch nicht jenen Datentyp. Ich speichere als int die Sekunden ab 1970 und gut. Hat mir bisher auch viel Arbeit erspart. z.B. bei nem Timeout einfach aktuelle Zeit (bzw. aktuelle Sekunden ab 1970) minus x Sekunden und der Rest ist im Timeout bzw. wird gelöscht etc. etc.
- tracer
- Operator

- Beiträge: 63851
- Registriert: 18.08.2004 18:50:03
- Wohnort: Kollmar
- Has thanked: 5 times
- Been thanked: 4 times
- Kontaktdaten:
#13
Welcher? M$-SQL Server?Holger Port hat geschrieben:Gibt es in mySQL evtl. auch DATEPART wie z.B. beim SQL-Server?
SELECT * FROM MeinerTabelle WHERE MONTH(MeinDatum) = MeinGewählterMonatSELECT * FROM MeinerTabelle WHERE DATEPART(mm, MeinDatum) = MeinGewählterMonat
Ist aber leider genausowenig portabel wir DATEPART (und leider auch ein Großteil der Datumsfunktionen).
Die Lösung mit LIKE ist portabel.
Ich habe mir, als ich in einem heterogenen Umfeld gearbeitet habe, eine Abstraktionsklasse geschrieben, die für M$-SQL, Oracle und MySQL die benötigten Funktionen bereitstellte, so dass das Programm auf jeder DB Lauffähig war, weil zum Beginn des Projektes noch nicht sicher war, was die Zielplatform sein wird.
(Es war damals noch nicht so einfach OpenSource zu verwenden, Oracle war vorhanden, und der IT-Leiter war M$ Fan.)
#14
ok - werde nochmal drüber nachdenken.tracer hat geschrieben:Ich würde das nochmal überdenken.hank hat geschrieben: Ja - ist mir schon klar. Dieses Datum ist ein Datum, das der User über Form selbst eingibt. Da kann ich ja wohl schlecht erklären, man muss das Datum so reinschreiben - ok - ich könnte es umwandeln - aber so geht es jetzt ja auch
MySQl biete eine Menge an mächtigen Funktionen zur Manipulation von Datumswerten.
Wenn Du den Datentyp nicht nutzt, verlierst Du die Möglichkeit, die MySQl Funktionen zu nutzen.
Das ist ungefähr wie Gas auf einem Schieberegler, es geht, aber ...
Einfach 2 kleine Funktionen in Script rein, und schon kann der User mit seinem "Bekannten" Format arbeiten, und MySQl mit dem nativen.
Das ist für DATE, analog geht das natürlich auch für DATETIME.Code: Alles auswählen
function iso2ger($date) { return (substr($date, 8, 2) . "." . substr($date, 5, 2) . "." . substr($date, 0, 4) . " " . substr($date, 11, 5)); } function ger2iso($date) { return (substr($date, 6, 4) . "-" . substr($date, 3, 2) . "-" . substr($date, 0, 2)); }
Obwohl es in diesem Fall tatsächlich so ist, das ich die mysql Funktionen in diesem Feld nicht benötige.
Aber versuchen kann ichs ja mal....
Gruß - Jan
