Marco: Memberliste

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

  1. 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

    --
    Datenbanken speichern keine User.
    Das liegt daran, daß Datenbanken mit der Lebensmittelversorgung für gespeicherte biologische Lebensformen derzeit noch Probleme haben.
      (Christoph Schnauß)
    1. 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

      1. Hi,

        In welcher Tabelle? In der Datenbank oder in PHP?

        Was verstehst du unter einer Tabelle "in PHP"?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Hi,

          die Tabelle, die ich zb. in PHP stehen habe. :)

          mfg Marco

          1. 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

            --
            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
            1. 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

              1. 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

                --
                Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                Terry Pratchett, "Wachen! Wachen!"
                Veranstaltungsdatenbank Vdb 0.3
      2. 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

        --
        Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde.
        1. 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?

          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

          1. 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

            --
            Wer es in einem Unternehmen zu etwas bringen will, muss so tun, als hätte er es schon zu etwas gebracht.
            1. 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

              1. 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

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. 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

                  1. 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

                    --
                    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
                    Terry Pratchett, "Wachen! Wachen!"
                    Veranstaltungsdatenbank Vdb 0.3
                    1. 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

                        
                      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
                      
                  2. 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

                    --
                    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]