Nochmal Hallo,
Hallo Supermann,
Jetzt verstehe ich langsam was Ihr meint-kann es aber noch nicht umsetzen.
Dies ist das SELF, wollen Sie etwas SELF machen wird Ihnen geholfen :)
Was du nämlich tun willst ist diese 366 Spalten in Zeilen umwandeln. Damit ist aber nicht gemeint, dass du eine Kalender-Tabelle mit 366 Zeilen und 1000 Spalten (pro User) anlegst, sondern eine mit vier Spalten:
Fortlaufende ID
User-ID
Datum
Kommentar (oder wofür auch immer du dein VARCHAR da benötigtest)
Je nach Anwendung kann es auch sinnig sein zwei Datum-Spalten zu verwenden (von bis) aber das konnte ich aus deinem Posting nicht herauslesen, also lassen wir das noch :)
Wenn ein Benutzer nun einen Tag als "online" schaltet prüfst du nun serverseitig ob das angegebene Datum innerhalb der nächsten zwei Monate liegt.
WENN $Eingetragenes_Datum >= heute() UND $Eingetragenes_Datum <= heute()+30 DANN SpeichereInDatenbank($übergebene, $Werte, $aus, $dem, $Formular);
Auf der Datenbank machst du dann eine INSERT-Operation, in der du eine Zeile schreibst, darin enthalten die User-ID des Benutzers, das Datum an dem er online ist und sein Kommentar.
Beim wieder-offline-schalten musst du dann ggf. die entsprechende Zeile wieder löschen, du identifizierst sie dann über die User-ID und das Datum. Die Fortlaufende ID ist in dieser Tabelle nahezu unnütz, braucht's aber eben :)
Bevor du dich mit JOINs beschäftigst (das wäre dann der nächste Schritt) machst du deinen join noch selber außerhalb der Datenbank :)
Wenn du jetzt also alle online-Tage von Superheld wissen willst fragst du die Datenbank zuerst
SELECT user_id FROM Tabelle_user WHERE uname LIKE 'Superheld';
(ggf. LIMIT, ORDER etc.)
zurück kommt die user_id die du dann auf die andere Tabelle los lässt
SELECT datum , kommentar FROM Tabelle_onlinezeiten WHERE user_id = ($vorhin_abgefragte_uid) AND datum >= NOW();
Wenn du JOINs benutzt ist das nur ein Schritt und du überlässt der Datenbank das zusammenführen von user_id aus der einen und der anderen Tabelle. Dann würdest du nur noch nach dem Benutzernamen fragen und die Datenbank strickt dir das wieder zusammen.
Nun zu deinem konkreten Wunsch
Dann wollte ich abfragen welcher User überhaupt einen Eintrag hat und dies weiter verarbeiten...
Im Grunde machst du das gleiche wie oben, fragst also alle Daten eines Users ab und wenn nichts zurück kommt ist es leer ^^ er hat also nicht "überhaupt einen Eintrag". Um das zu prüfen legst du das LIMIT ggf. noch auf 1 fest, was dann einfach etwas flotter geht.
Daher war die Idee das in meine (schlechte) Tabelle die Kürzel des User am entsprechenden Tag eingetragen werden.
Lese ich daraus, dass es gar keine User-Tabelle gibt? Falls dem so ist kannst du natürlich auch deine user_id durch die Kürzel ersetzen und nach denen suchen. Ist aber nicht so performant.
Wenn du deine Tabellen entsprechend umgestickt hast kannst du dich auch mit JOINs beschäftigen, die das ganze wie erwähnt noch stärker vereinfachen (Dinge die du im Moment dann mit zwei queries verarbeitest gingen dann direkt auf der Datenbank).
--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(