Wordpress Datenbank auswerten

hightime-fan

Mitglied
Thread Starter
Mitglied seit
06.08.2007
Beiträge
718
Hi MacUsers,

da ich noch nie wirklich mit MySQL arbeiten musste, und zur Zeit ein WordPress Projekt am Laufen habe für welches bestimmte Werte ausgelesen werden müssen, benötige ich eure Hilfe.

Wenn sich User für die WordPress Seite anmelden, werden diese um Ihre Verfügbarkeit gefragt. Wenn die Anmeldung abgeschlossen ist, schreibt ein WordPress Plugin in die Datenbank.

In der Tabelle "wp_usermeta", hat das Plugin drei Spalten angelegt: "user_id", "meta_key" und "meta_value".

In der Spalte "meta_key" werden u.a. die Werte "avail_monday", "avail_tuesday", "avail_wednesday", "avail_thursday", "avail_friday", "avail_saturday" und "avail_sunday" für jeden verschiedenen User gespeichert.

In der Spalte "meta_value" wird dann für jeden "avail_"-Wert eine Uhrzeit gespeichert (Bsp. "7 to 8am", "8 to 9am", usw.).


Also… so sieht es in der wp_usermeta Tabelle mit 2 Usern aus aus:

USER_ID----------META_KEY----------META_VALUE
1------------------avail_monday-------7 to 8am, 9 to 10am
1------------------avail_tuesday-------7 to 8am, 10 to 11am
1------------------avail_wednesday---8 to 9am, 11 to 12am
1------------------avail_thursday------9 to 10am, 10 to 11am
1------------------avail_friday---------8 to 12am, 11 to 11am
1------------------avail_saturday------7 to 8am, 10 to 11am
1------------------avail_sunday--------9 to 10am, 1 to 2pm
2------------------avail_monday-------7 to 8am, 9 to 10am
2------------------avail_tuesday-------7 to 8am, 10 to 11am
2------------------avail_wednesday---8 to 9am, 11 to 12am
2------------------avail_thursday------9 to 10am, 10 to 11am
2------------------avail_friday---------8 to 12am, 11 to 11am
2------------------avail_saturday------7 to 8am, 10 to 11am
2------------------avail_sunday--------9 to 10am, 1 to 2pm



Im Endeffekt soll ausgegeben werden wie viele User am Montag von 8 bis 9am, 9 bis 10am,usw. verfügbar sind. Und das für jeden Tag, damit wir wissen viele Personen am welchen Tagen um welche Uhrzeit verfügbar sind. Und wenn möglich, dann noch den Namen der Personen.

Wenn ich das richtig verstanden hab muss man mit SELECT an die Spalten FROM wp_usermeta an die Daten rangehen, aber wie genau ich dann den Rest umsetze… keine Ahnung.

Hättet ihr Anregungen für mich?


Danke im Voraus!

Hightime :)
 

falkgottschalk

Aktives Mitglied
Mitglied seit
22.08.2005
Beiträge
24.083
Auf jeden Fall wird das Gefummel, weil ja
a) noch eine "Benutzer-Oberfläche" gebraucht werden wird in die irgend jemand z.B. das Datums-Intervall reinschreiben muss
b) die auszuwertenden Werte stehen gemeinsam in einer Spalte (9 to 10am, 1 to 2pm), haben ein Komma dazwischen, am/pm-Angaben und man muss auch noch rechnen
c) Theoretisch kann die selbe Person ja mehrmals am Tag kommen
d) Damit man mit der Liste etwas anfangen kann, wird man aus er USER_ID noch den Namen machen müssen
e) es muss ja optisch irgendwie in irgendwas integriert werden, das vielleicht sogar mit Zugriffschutz

Wenn sich jemand in php gut auskennt, dann ist er - wenn es "schön" werden soll - 2 Tage beschäftigt. Wenn man erst noch php lernen muss, dann wird es 2-3 Wochen dauern.
Es ist jedenfalls NICHT mit "mal eben" einem 2-3-zeiligen select-Statement getan.
 

hightime-fan

Mitglied
Thread Starter
Mitglied seit
06.08.2007
Beiträge
718
Schonmal danke für deine Antwort Falkgottschalk!
Dass das nicht ganz einfach wird hatte ich mir schon gedacht und versucht Alternativem bzw. vorgefertigte Lösungen zu finden aber was zu 100% passendes finde ich nicht.

Die Benutzeroberfläche steht bereits - jeder User kann durch Checkboxen die Zeitintervalle seiner Verfügbarkeit angeben. Und der Zugriffsschutz wäre auch kein Problem, das ist auch bereits Mithilfe eines Plugins gebaut.

Das Ideale wäre wenn man das so hinbekommen würde:

Montag
- 7 to 8am 5 Verfügbar (Name1, Name2, Name3, Name4, Name5)
- 8 to 9am 6 Verfügbar (Name1, Name2, Name3, Name4, Name5, Name6)
- 9 to 10am 3 Verfügbar (Name1, Name2, Name3)
…usw.

Hättest du Anregungen mit welchen mysql-Befehlen ich mich beschäftigen muss?

Danke!
 

falkgottschalk

Aktives Mitglied
Mitglied seit
22.08.2005
Beiträge
24.083
Naja, die nächste Frage wäre: wer will das auswerten und wie? "nur" sql-Statement mit Ergebnis? Kleines php-Programm das jemand starten kann? Kann das dann jeder starten?
Welcher Montag wäre genehm? Sicherlich wird irgend jemand irgendwo ein Datum eingeben, das ausgewertet werden muss - das meine ich mit "Benutzeroberfläche".

sql alleine dürfte nicht reichen, das wird auf eine Kombination aus html, php und sql hinauslaufen.
Und natürlich braucht man weitere Kenntnisse der Datenbank - z.B. darüber, wo denn die Namen der User/Leute gespeichert sind.

Als Schock-Einstieg brauchst Du auf jeden Fall etwas hiervon:

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
 

hightime-fan

Mitglied
Thread Starter
Mitglied seit
06.08.2007
Beiträge
718
Zur Benutzeroberfläche:

Mithilfe eines WP-Plugins habe ich neue User Roles erstellt und mithilfe eines weiteren Plugins habs ich ein sog. Access Control eingerichtet.
Es gibt die Gruppe "Rowers" und die Gruppe "Committee". Wenn man sich als "Committee" einloggt, wird einem auf einer bestimmten Seite dann die Auswertung der Verfügbarkeit angezeigt.

Wenn die Benutzer zum ersten Mal auf die Seite kommen, werden sie gefragt sich zu registrieren. Das erfolgt über das Hauseigene WordPress User System. Habe aber dieses mit weiteren Felder erweitern können - hier werden dann die User sofort um Ihre Verfügbarkeit gefragt. Falls sie es noch nicht wissen, können sie dies auch später unter auf der Seite "Edit Details" machen. Die Verfügbarkeits-Daten werden dann wie in meinem ersten Post beschrieben in der Datenbank gespeichert.

Also eigentlich muss ich mir einen html/css/php/mysql-Code zusammenbasteln den ich dann direkt auf eine der WP-Seiten einfüge

Werde mir auf jedem Fall gleich mal die von dir verlinkte Seite anschauen, danke :)
 
Oben