Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankbefüllung bei Registrierung

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbankbefüllung bei Registrierung

    Hallo in die Runde,

    ich bin grade bei meinem ersten Projekt, welches ich gestartet habe, um mir selber ein wenig Umgang mit php und MySQL beizubringen.

    Es soll am Ende ein kleines eher textbasiertes Spiel werden, ohne Animationen oder ähnliches.

    Folgender Sachstand:

    Ich habe einen funktionierenden Login und eine funktionierende Registrierung, auch der,Logout klappt. Der gesicherte Bereich ist nur angemeldet betretbar und ich kann Variablen aus meiner "users" Tabelle abrufen und dem User anzeigen lassen.

    Nach stundenlanger Recherche und ausprobieren bin ich jetzt ratlos.

    Ich möchte die Registrierung so erweitern, dass nicht nur die Tabelle "users" befüllt wird, sondern auch weitere Tabellen. In den weiteren Tabellen soll die "id" als "userid" übernommen werden, die anderen Spalten sollen den Startwert "0" bekommen.

    Wie geht das?

    Wahrscheinlich fehlt mir einfach nur das richtige Stichwort um im Netz was zu finden.

    Beste Grüße und danke schonmal für eure Unterstützung!


  • #2
    Verstehe ich nicht. Wenn du eine Tabelle füllen kannst, warum dann nicht einfach noch eine zweite? Schick halt zwei INSERTs an die Datenbank. Den letzten Primary-Key bekommst du von der Schnittstelle - ich benutze ja immer PDO, also

    https://www.php.net/manual/en/pdo.lastinsertid.php

    für MySQLi ist das dann anders. Und default-Werte legst du ja mit der Tabelle zusammen an. create table xy (foo text default '' ... etc je nach Dialekt.
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      Zitat von Soenke93 Beitrag anzeigen

      Ich möchte die Registrierung so erweitern, dass nicht nur die Tabelle "users" befüllt wird, sondern auch weitere Tabellen. In den weiteren Tabellen soll die "id" als "userid" übernommen werden, die anderen Spalten sollen den Startwert "0" bekommen.

      Wie geht das?
      viele Wege führen nach Rom:
      • mehrere Statements in einer Transaktion
      • writeable Common Table Expressions, damit ginge das in einem Statement - aber nur mit PostgreSQL
      • TRIGGER


      PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

      Kommentar


      • #4
        easy und naheliegend: einfach eins nach dem anderen.
        Wenn die Usertabelle mit einem Datensatz versehen ist, dann ist meinetwegen die Profiltabelle dran, dann die was-machst-du-gerade Tabelle usw.
        Mglw. gibt es dabei 1:1 Beziehung zur User Tabelle oder auch 1:n, entsprechend müssen in den Tabellen die Foreign Keys definiert sein und beim PHP post befüllt werden, damit dieser Bezug ermöglicht wird / erhalten bleibt.
        Die verschiedenen Tabellen können auch gern jeweils auf einer dafür geschaffenen Webseite dargestellt / befüllt werden.
        Später kann man es komplexer gestalten und mit mehren Tabellen auf einer Seite arbeiten. Dabei kämen dann ggF. die Verfahren ins Spiel, die akretschmer genannt hat.

        Kommentar


        • #5
          Zitat von Soenke93 Beitrag anzeigen
          Hallo in die Runde,

          ich bin grade bei meinem ersten Projekt, welches ich gestartet habe, um mir selber ein wenig Umgang mit php und MySQL beizubringen.

          ...

          Folgender Sachstand:

          Ich habe einen funktionierenden Login und eine funktionierende Registrierung, auch der,Logout klappt. Der gesicherte Bereich ist nur angemeldet betretbar und ich kann ...

          ...

          Ich möchte die Registrierung so erweitern, dass nicht nur die Tabelle "users" befüllt wird, sondern auch weitere Tabellen. In den weiteren Tabellen soll die "id" als "userid" übernommen werden, die anderen Spalten sollen den Startwert "0" bekommen.
          Aber du möchtest doch nicht einfach die Tabellen mit irgendwelchen Daten befüllen, sondern hinter den Daten steckt doch auch etwas dahinter, z.B. Spielstände, Ergebnisse von "Matches" (oder wie auch immer du die bei dir bezeichnest) usw. usf.?!!

          Normalerweise läuft etwas derartiges so ab:
          1. Sachliche Darstellung dessen, was da ablaufen soll, in natürlicher oder Fach-Sprache - jedenfalls nicht in "IT-Deutsch", z.B. "Spieler können sich einloggen, einen Spielpartner suchen, ein Spiel beginnen usw. usf."
          2. Über die reine Spielfunktion hinaus gibt es dann in der Regel weitere "kleine Anwendungen", wie z.B. Statistiken, Ranglisten, High-Scores usw., eben das, was an Datenmaterial anfällt.
          3. Für jede der einzelnen "Anwendungen" sollte eine Darstellung des Ablaufs als Algorithmus dargestellt werden.
          4. Die anfallenden Daten werden auf der Datenbank gespeichert, das ergibt ein Datenmodell. Es besteht aus Tabellen, einerseits Stammdaten (z.B. die User-Daten), andererseits Bewegungsdaten: Spielverläufe, Ergebnisse usw.
          5. Erst wenn dieses Modell "steht" stellt sich die Frage, die du hier in den Mittelpunkt stellst: Wie kommen welche Daten in die passenden Tabellen? Wobei dies grundsätzlich technisch schon beantwortet wurde, in #2 stehts: durch INSERT-Statements.
          Wie geht das?

          Wahrscheinlich fehlt mir einfach nur das richtige Stichwort um im Netz was zu finden.
          Nein. Das ist mit Sicherheit am allerwenigsten das, was dir fehlt. Durch Suche nach Stichworten im Netzt findest du Bruchstücke, zusammengesetzt ergibt das allenfalls einen Flickenteppich.

          An einer systematischen Beschäftigung mit mindestens zwei Fragen kommst du nicht vorbei:
          1. Wie schreibt man überhaupt Anwendungen mit php?
          2. Wie funktionieren Datenbanken und wie geben die die abgebildete Realität wieder?
          Im Klartext: Das sind zwei "Crashkurse", die jeweils mind. eine Woche in Anspruch nehmen. Mit "Recherchieren" im Web erreichst du überhaupt nichts. Wenn du oben schreibst, die hättest schon eine "stundenlange Recherche" hinter dir, kann man nur sagen: Das war schonmal verplemperte Zeit.

          Kommentar

          Lädt...
          X