Memberliste
Marco
- php
Hallo,
ich betreibe ein CLan HP wo jeder neue Member eine Trailzeit hat(4 wochen probezeit) nach den 4 wochen ist er erst Member.
Hier könnt ihr die Memberliste mal sehen
wie ihr da sehen könnt gibt es einmal MEMBER und auch TRAILMEMBER
Das ist jetzt eine Memberliste dich ich immer Manuel erstellt habe und auch immer Manuel ändern muss.
Ich bin gerade dabei die Memberliste zu automatisieren :)
Ich habe mir eine eigene Memberliste erstellt, die auch einwandfrei Funktioniert. Muss nur noch ein Paar extras einbinden. Was aber auch kein Problem für mich ist. Jedoch wird mir bei meiner Liste alle Member angezeigt.
Ich möchte aber gerne das alle Member die sich Anmelden in eine andere Tabelle zusehen sind. Also unter der Normalen Memberliste. Wie ihr das auf meiner HP sehen könnt.
Hier erstmal meine Memberliste, noch ohne Trailmember:
$ergebnis=mysql_query("SELECT spalte1, spalte2, spalte3, spalte4, spalte5, spalte6 FROM tabelle1 ORDER BY spalte1")
?>
<table width="100%" border="1">
<tr>
<td width="16%">Clanränge</td>
<td width="16%">Benutzername</td>
<td width="16%">Bild</td>
<td width="16%">Teamspeak</td>
<td width="16%">X-Fire;</td>
<td width="16%">Game</td>
</tr>
</table>
<table width="100%" border="1">
<?php while($ausgabe = mysql_fetch_object($ergebnis)) {
echo '<tr>'."\n";
echo '<td width=16%>'.$ausgabe->spalte1.'</td>'."\n";
echo '<td width=16%>'.$ausgabe->spalte2.'</td>'."\n";
echo '<td width=16%>'.$ausgabe->spalte3.'</td>'."\n";
echo '<td width=16%>'.$ausgabe->spalte4.'</td>'."\n";
echo '<td width=16%>'.$ausgabe->spalte5.'</td>'."\n";
echo '<td width=16%>'.$ausgabe->spalte6.'</td>'."\n";
echo '</tr>'."\n";
}
?>
</table>
Also ich habe 2 Probleme:
1: Alle neuen Member in eine neue Tabelle packen (Trailmember)
2: Nach 4 Wochen in die Hauptliste einbinden (Member)
Alle Member bekommen eine ID, ich habe zb. 100. Wenn sich jetzt ein neuer Member anmeldet bekommt er die ID 101 usw.
Meine Idee war es alle Member die eine ID über 100 haben in die Trailmember Tabelle einzubinden. Und dann nach 4 Wochen in die Memberliste einzubinden.
Aber wie kann ich das realisieren?
Ich hoffe ihr habt soweit alles verstanden :)
Wenn nicht versuche ich es nochmal Besser zuerklären.
Ich hoffe habt ein paar Ideen für mich
Vielen Dank erstmal
mfg
Hi,
ich betreibe ein CLan HP wo jeder neue Member eine Trailzeit hat(4 wochen probezeit)
sollte es nicht eher "Trial" heißen?
trial - Versuch, Probezeit (im jur. Kontext auch Gerichtsverfahren)
trail - Pfad, Spur
Ich fürchte, da hat jemand einen Begriff irgendwo aufgeschnappt, falsch gelesen und nicht verstanden.
Das ist jetzt eine Memberliste dich ich immer Manuel erstellt habe und auch immer Manuel ändern muss.
Der arme Manuel. Vielleicht meintest du "manuell"?
Ich möchte aber gerne das alle Member die sich Anmelden in eine andere Tabelle zusehen sind.
Dann solltest du
* entweder deine Datenbankabfrage zusätzlich nach dem Member-Status sortieren
oder
* zwei Datenbankabfragen machen und den Member-Status als zusätzliches Selektionskriterium nehmen.
$ergebnis=mysql_query("SELECT spalte1, spalte2, spalte3, spalte4, spalte5, spalte6 FROM tabelle1 ORDER BY spalte1")
Ein Königreich für aussagekräftige Spaltenbezeichnungen ...
<td width="16%">Clanränge</td>
<td width="16%">Benutzername</td>
<td width="16%">Bild</td>
<td width="16%">Teamspeak</td>
<td width="16%">X-Fire;</td>
<td width="16%">Game</td>
Möchtest du nicht lieber auf die Breitenangaben verzichten, so dass der Browser die Chance hat, die Spaltenbreiten je nach Bedarf zu variieren? Zumal 6*16% sowieso keine 100% ergibt.
1: Alle neuen Member in eine neue Tabelle packen (Trailmember)
2: Nach 4 Wochen in die Hauptliste einbinden (Member)
Alle Member bekommen eine ID, ich habe zb. 100. Wenn sich jetzt ein neuer Member anmeldet bekommt er die ID 101 usw.
Meine Idee war es alle Member die eine ID über 100 haben in die Trailmember Tabelle einzubinden. Und dann nach 4 Wochen in die Memberliste einzubinden.
Wenn die Umstufung sowieso automatisch geschehen soll, vermerke doch einfach das Anmeldedatum jedes Members in der Tabelle. Als Selektionskriterium kannst du dann abfragen, ob das Anmeldedatum mehr als 4 Wochen zurückliegt.
So long,
Martin
sollte es nicht eher "Trial" heißen?
trial - Versuch, Probezeit (im jur. Kontext auch Gerichtsverfahren)
trail - Pfad, Spur
Ich fürchte, da hat jemand einen Begriff irgendwo aufgeschnappt, falsch gelesen und nicht verstanden.
Stimmt, habe es nur immer falsch geschrieben :D
Der arme Manuel. Vielleicht meintest du "manuell"?
Stimmt auch :D
Dann solltest du
* entweder deine Datenbankabfrage zusätzlich nach dem Member-Status sortieren
Member Status Bleibt immer Gleich
oder
* zwei Datenbankabfragen machen und den Member-Status als zusätzliches Selektionskriterium nehmen.
Wie meinst du das?
Möchtest du nicht lieber auf die Breitenangaben verzichten, so dass der Browser die Chance hat, die Spaltenbreiten je nach Bedarf zu variieren? Zumal 6*16% sowieso keine 100% ergibt.
Das ist ja jetzt auch erst noch meine Test Datei. Ich habe die angaben nur gemacht, da sonst alles ungleichmässig ist. Ja, 100/6 = 16,66666...
Wenn die Umstufung sowieso automatisch geschehen soll, vermerke doch einfach das Anmeldedatum jedes Members in der Tabelle. Als Selektionskriterium kannst du dann abfragen, ob das Anmeldedatum mehr als 4 Wochen zurückliegt.
In welcher Tabelle? In der Datenbank oder in PHP?
Und wie Frage ich dann ab, ob das Anmeldedatum mehr als 4 Wochen zurück liegt oder nicht?
Und wie bekomme ich dann die Trialmember, in die Memberliste?
Hast du vieleicht noch ein paar Tips, womit ich da arbeiten soll?
Vielen Dank
mfg Marco
Hi,
In welcher Tabelle? In der Datenbank oder in PHP?
Was verstehst du unter einer Tabelle "in PHP"?
MfG ChrisB
Hi,
die Tabelle, die ich zb. in PHP stehen habe. :)
mfg Marco
Hi,
die Tabelle, die ich zb. in PHP stehen habe. :)
Mir war fast klar, dass die Antwort derart unspezifisch sein würde - *genau* *deshalb* fragte ich nach.
Und deshalb wiederhole ich die Frage auch - bitte beschreibe, was du unter einer Tabelle "in PHP" verstehst. Und diesmal bitte ohne Smilie, dafür aber konkret.
Du musst irgendeine Art von PHP-Datenstruktur meinen, denn sonst wäre die von dir gestellte Frage wenig sinnvoll gewesen - also was für eine, ein Array, oder ...?
MfG ChrisB
Hi,
Mir war fast klar, dass die Antwort derart unspezifisch sein würde - *genau* *deshalb* fragte ich nach.
Und deshalb wiederhole ich die Frage auch - bitte beschreibe, was du unter einer Tabelle "in PHP" verstehst. Und diesmal bitte ohne Smilie, dafür aber konkret.
Unter eine Tabelle in PHP verstehe ich. Das sich eine normale HTML Tabelle in einer PHP Datei befindet. Egal, ob jetzt in PHP geschrieben oder HTML.
mfg Marco
Hallo
Unter eine Tabelle in PHP verstehe ich. Das sich eine normale HTML Tabelle in einer PHP Datei befindet. Egal, ob jetzt in PHP geschrieben ...
... dann wäre es eine PHP-Tabelle, die es als Datenstruktur nicht gibt ...
... oder HTML.
Das ist eine HTML-Tabelle, nichts anderes.
Die Frage mag nervig sein, hat aber ihre Berechtigung. PHP ist PHP und HTML bleibt HTML, auch wenn es mit PHP generiert wird. Bitte halte diese beiden Techniken auseinander. In deinem Beispiel wird nichts anderes gemacht, als mit der Programmiersprache PHP HTML-Quelltext samt Inhalten zu erzeugen. Genauso wird, um deine Memberliste abzufragen, eine Zeichenkette, die einen gültigen SQL-Query repräsentiert, generiert. Das ist wieder nur eine Sache (Querystring), die in einer Technik (PHP) erzeugt wird, aber Bestandteil einer anderen Technik ((My)SQL) ist. Die Steuerung der DB-Verbindung inklusive des Absetzens der Abfrage ist dann wieder eine andere Sache.
Tschö, Auge
Hi,
Dann solltest du
* entweder deine Datenbankabfrage zusätzlich nach dem Member-Status sortieren
Member Status Bleibt immer Gleich
wie das? Woran unterscheidest du dann Trial- von Vollmitgliedern?
oder
* zwei Datenbankabfragen machen und den Member-Status als zusätzliches Selektionskriterium nehmen.
Wie meinst du das?
Ich nahm an, dass die Tabelle (die in der DB, was denn sonst!) eine Spalte hat, in der eben dieser Status vermerkt ist. Die hättest du dann wahlweise
* als Sortierkriterium (ORDER BY oder GROUP BY) nehmen können, dann kannst
du alle Mitglieder in einem Aufwasch aus der DB abfragen; oder
* als Bedingung (WHERE-Klausel) verwenden können.
Wenn die Umstufung sowieso automatisch geschehen soll, vermerke doch einfach das Anmeldedatum jedes Members in der Tabelle. Als Selektionskriterium kannst du dann abfragen, ob das Anmeldedatum mehr als 4 Wochen zurückliegt.
In welcher Tabelle? In der Datenbank oder in PHP?
Siehe ChrisB.
Und wie Frage ich dann ab, ob das Anmeldedatum mehr als 4 Wochen zurück liegt oder nicht?
Und wie bekomme ich dann die Trialmember, in die Memberliste?
Hä? Die sind doch längst drin - oder redest du von der Anmeldung?
Ciao,
Martin
Hi,
Dann solltest du
* entweder deine Datenbankabfrage zusätzlich nach dem Member-Status sortieren
Member Status Bleibt immer Gleichwie das? Woran unterscheidest du dann Trial- von Vollmitgliedern?
Ich verndes das CMS Joomla, wenn sich da ein Member anmeldet. Bekommt er den Status "Registriert" und dann habe ich noch die möglichkeit. Meine member ein anderen Status zugeben. Was aber dann den Membern auch höhere Rechte gibt. Wie zb. Beiträge bearbeiten etc.
Unterscheiden tuh ich die Member, nur in der Memberliste :D
Darum habe ich ja auch die Memberliste erstellt.
* zwei Datenbankabfragen machen und den Member-Status als zusätzliches Selektionskriterium nehmen.
Wie meinst du das?Ich nahm an, dass die Tabelle (die in der DB, was denn sonst!) eine Spalte hat, in der eben dieser Status vermerkt ist. Die hättest du dann wahlweise
* als Sortierkriterium (ORDER BY oder GROUP BY) nehmen können, dann kannst
du alle Mitglieder in einem Aufwasch aus der DB abfragen; oder
* als Bedingung (WHERE-Klausel) verwenden können.
Den Status gibt es, klar. Aber da alle Member den Status Registriert haben, kann ich da leider nichts mit anfangen.
Wenn die Umstufung sowieso automatisch geschehen soll, vermerke doch einfach das Anmeldedatum jedes Members in der Tabelle. Als Selektionskriterium kannst du dann abfragen, ob das Anmeldedatum mehr als 4 Wochen zurückliegt.
In welcher Tabelle? In der Datenbank oder in PHP?Siehe ChrisB.
*lach*
Und wie Frage ich dann ab, ob das Anmeldedatum mehr als 4 Wochen zurück liegt oder nicht?
Ja, ich meinte damit, wie ich das per PHP abfrage. :)
Und wie bekomme ich dann die Trialmember, in die Memberliste?
Hä? Die sind doch längst drin - oder redest du von der Anmeldung?
Sry, habe das wohl auch ein bisschen kompliziert gefragt.
Ja, die Member sind alle in der Memberliste. Ich meine wie bekomme ich die Member dann von der Tabelle(Trialmember) in die Tabelle(Member) ?
Vielen Dank für eure Hilfe.
Ich weiß, klingt alles ziemlich verwirrent *lol*
mfg Marco
Hallo,
In welcher Tabelle? In der Datenbank oder in PHP?
Siehe ChrisB.
*lach*
ja, *lach* nur. Du hast keine Tabelle "in PHP". Du hast höchstens eine in HTML.
Und wie Frage ich dann ab, ob das Anmeldedatum mehr als 4 Wochen zurück liegt oder nicht?
Ja, ich meinte damit, wie ich das per PHP abfrage. :)
Am besten gar nicht. Ich bin nicht absolut sattelfest in MySQL, aber sowas lass am besten die Datenbank selbst machen! Nimm eine Spalte vom Typ DATE oder DATETIME für das Anmeldedatum, und frage in der WHERE-Klausel ab, ob aktuelles Datum minus Anmeldedatum größer als 28 Tage ist (die genaue Syntax müsste ich jetzt auch erst nachschlagen).
Und wie bekomme ich dann die Trialmember, in die Memberliste?
Hä? Die sind doch längst drin - oder redest du von der Anmeldung?
Sry, habe das wohl auch ein bisschen kompliziert gefragt.
Ja, die Member sind alle in der Memberliste. Ich meine wie bekomme ich die Member dann von der Tabelle(Trialmember) in die Tabelle(Member) ?
*kreisch*
Jetzt begreife ich, was du meinst: Du hast zwei getrennte Tabellen? Für gleichartige Daten? Das ist ein gravierender Fehler im Datenbankdesign. Gleichartige Daten gehören in *eine* Tabelle, unterschieden werden sie anhand bestimmter Merkmale.
So long,
Martin
Hi,
ja, *lach* nur. Du hast keine Tabelle "in PHP". Du hast höchstens eine in HTML.
Stimmt
Und wie Frage ich dann ab, ob das Anmeldedatum mehr als 4 Wochen zurück liegt oder nicht?
Ja, ich meinte damit, wie ich das per PHP abfrage. :)Am besten gar nicht. Ich bin nicht absolut sattelfest in MySQL, aber sowas lass am besten die Datenbank selbst machen! Nimm eine Spalte vom Typ DATE oder DATETIME für das Anmeldedatum, und frage in der WHERE-Klausel ab, ob aktuelles Datum minus Anmeldedatum größer als 28 Tage ist (die genaue Syntax müsste ich jetzt auch erst nachschlagen).
Okay, ich schau mal was ich bei Google finde.
*kreisch*
Jetzt begreife ich, was du meinst: Du hast zwei getrennte Tabellen? Für gleichartige Daten? Das ist ein gravierender Fehler im Datenbankdesign. Gleichartige Daten gehören in *eine* Tabelle, unterschieden werden sie anhand bestimmter Merkmale.
Nicht ganz :D
Noch habe ich eine Tabelle, das ist die Memberliste.
Ich brauch ja nicht unbedingt 2 Tabellen. Ich kann ja auch einfach mehr Spalten anlegen.
Also baue ich das jetzt gleich mit in die MYSQL abfrage mit ein.
Alles was über 4 Wochen her ist Speicher in eine Variable und andersrum genauso. Und die Variablen füge ich dann in die Tabelle ein.
Ja, wie ich die Abfrage mit MYSQL mache, weiß ich auch nocht nicht.
Muss erstmal bei google stöbern.
mfg Marco
Hi,
Also baue ich das jetzt gleich mit in die MYSQL abfrage mit ein.
Alles was über 4 Wochen her ist Speicher in eine Variable und andersrum genauso. Und die Variablen füge ich dann in die Tabelle ein.
Nein, tust du nicht.
Weil sich die Information aus den vorhandenen Spalteninhalten ergibt, willst du sie nicht in eine weitere Spalte schreiben - dort wäre sie a) redundant und b) ständig veraltet zugleich.
Du willst du diese Information nicht statisch ablegen, sondern zum jeweiligen Zugriffszeitpunkt ermitteln lassen.
MfG ChrisB
Nein, tust du nicht.
Weil sich die Information aus den vorhandenen Spalteninhalten ergibt, willst du sie nicht in eine weitere Spalte schreiben - dort wäre sie a) redundant und b) ständig veraltet zugleich.
Du willst du diese Information nicht statisch ablegen, sondern zum jeweiligen Zugriffszeitpunkt ermitteln lassen.
Okay, und wie dann?
habt ihr vieleicht ein kleines Beispiel für mich?
mfg BLackwane
Hallo
Weil sich die Information aus den vorhandenen Spalteninhalten ergibt, willst du sie nicht in eine weitere Spalte schreiben - dort wäre sie a) redundant und b) ständig veraltet zugleich.
Du willst du diese Information nicht statisch ablegen, sondern zum jeweiligen Zugriffszeitpunkt ermitteln lassen.
Okay, und wie dann?
habt ihr vieleicht ein kleines Beispiel für mich?
mögliche (wahrscheinlich unvollständige) Tabellenstruktur ("benutzer"):
id | name | vorname | anmeldedatum
1 | Meier | Max | 2009-08-21 14:13:58
2 | Muster | Wilfried | 2009-09-16 21:41:13
3 | Sorglos | Susi | 2009-10-09 08:47:27
Du hast nun zusätzlich zu den persönlichen Daten des Benutzers auch sein Anmeldedatum. Wenn du deine Tabelle der Benutzer ausgeben lassen willst, kannst du sie anhand des Anmeldedatums unterscheiden.
Folgender Query gibt die ID, die Namen und die Vornamen aller Benutzer zurück, deren Anmeldedatum mehr als 4 Wochen (28 Tage) zurückliegt. Die Liste wird aufsteigend nach den Familien)Namen der gefundenen Benutzer sortiert.
SELECT
id,
name,
vorname
FROM
benutzer
WHERE
anmeldedatum < DATE_SUB(NOW(),28 DAY)
ORDER BY
name ASC
Für nähere Infos zu den Datums- und Zeitfunktionen von MySQL konsultiere bitte das (soeben zum betreffenden Abschnitt verlinkte) MySQL-Manual.
Tschö, Auge
Hallo
Weil sich die Information aus den vorhandenen Spalteninhalten ergibt, willst du sie nicht in eine weitere Spalte schreiben - dort wäre sie a) redundant und b) ständig veraltet zugleich.
Du willst du diese Information nicht statisch ablegen, sondern zum jeweiligen Zugriffszeitpunkt ermitteln lassen.
Okay, und wie dann?
habt ihr vieleicht ein kleines Beispiel für mich?
mögliche (wahrscheinlich unvollständige) Tabellenstruktur ("benutzer"):
id | name | vorname | anmeldedatum
1 | Meier | Max | 2009-08-21 14:13:58
2 | Muster | Wilfried | 2009-09-16 21:41:13
3 | Sorglos | Susi | 2009-10-09 08:47:27Du hast nun zusätzlich zu den persönlichen Daten des Benutzers auch sein Anmeldedatum. Wenn du deine Tabelle der Benutzer ausgeben lassen willst, kannst du sie anhand des Anmeldedatums unterscheiden.
Folgender Query gibt die ID, die Namen und die Vornamen aller Benutzer zurück, deren Anmeldedatum mehr als 4 Wochen (28 Tage) zurückliegt. Die Liste wird aufsteigend nach den Familien)Namen der gefundenen Benutzer sortiert.
SELECT
id,
name,
vorname
FROM
benutzer
WHERE
anmeldedatum < DATE_SUB(NOW(),28 DAY)
ORDER BY
name ASC
Das ist ja Nice, danke dir.
Das ist genau das richtige für mich.
So einfach, aber doch so schwer. ^^
DAnke für die Aufklärung im anderen Beitrag, ich werde es beachten.
Vielen Vielen Dank
mfg Marco
Hi,
Du willst du diese Information nicht statisch ablegen, sondern zum jeweiligen Zugriffszeitpunkt ermitteln lassen.
Okay, und wie dann?
So dann, wie ich gerade schrieb.
habt ihr vieleicht ein kleines Beispiel für mich?
Schau dir die Datumsfunktionen im MySQL-Handbuch an.
MfG ChrisB