beim registrieren Datenbank und Name mit Nickname erstellen

Ich habe hier Bücher, nur fehlt mir manchmal der Stoß in die richtige Richtung...außerdem habe ich mich gerade erst angefangen mit MySQL...vorher habe ich mir selber php7 beigebracht, aber da fehlen auch noch so manche Kniffe...und bedenke ich versuche mich mit 55 durch learning by doing die ganze Sache zu verstehen und anzuwenden. Aber danke
 
Werbung:
Ok, Du musst wirklich an den Grundlagen arbeiten.
CASCADE kannst Du für lange Zeit vergessen, am besten für immer.

Du solltest zu dem Buch auch eine bessere Datenbank nehmen, Postgres z.B..
Hier ist ein Schema für den Anfang, damit kannst Du probieren:
Code:
create table player (
   p_id INT AUTO_INCREMENT PRIMARY KEY,
   p_name VARCHAR(40),
   p_password VARCHAR(255),
   p_email VARCHAR(255)); 
insert into player (p_name,   p_password,    p_email)
values
('john','12345678','john@dow.game'),
('jane','12345678','jane@djung.le');
select * from player;


create table vehicle(
    v_id INT AUTO_INCREMENT PRIMARY KEY,
    v_typ VARCHAR(20),
    v_manufactuer VARCHAR(20),
    v_model VARCHAR(20)
);
insert into vehicle (v_typ, v_manufactuer, v_model)
values
( 'PKW', 'Mercedes', '200'),
( 'Traktor', 'K-700', 'VEB');
select * from vehicle;


create table player_vehicle(
    pv_id INT AUTO_INCREMENT PRIMARY KEY,
    p_id INT,
    v_id INT,
    v_licensenumber VARCHAR(40),
    FOREIGN KEY(p_id)
       REFERENCES player(p_id),
    FOREIGN KEY(v_id)
       REFERENCES vehicle(v_id));
insert into player_vehicle (p_id, v_id, v_licensenumber)
values
(1, 1, 'B-DG-100'),
(1, 2, 'B-DG-101'),
(2, 1, 'B-DG-101');

select * from player_vehicle;
select * from player p, player_vehicle pv, vehicle v
where p.p_id = pv.p_id
 and pv.v_id = v.v_id;
 
Zuletzt bearbeitet:
dabadepdu....supi danke jetzt habe ich es ja auch kapiert...bin auf diese Möglichkeit nicht gekommen...und ich denke mal so kann man auch eine Antwort erwarten, weil wenn nicht dafür, wofür dann ein Forum, um auch Anfängern auf die Sprünge zu helfen...nochmals vielen dank
 
bin auf diese Möglichkeit nicht gekommen...und ich denke mal so kann man auch eine Antwort erwarten, ..
Diese Möglichkeit ist sicher nicht die einzige, aber eine sehr gängige. Das wirst Du sicher verstehen, wenn Du Dich gründlicher damit beschäftigt hast.
Ob man das erwarten kann, sei mal dahin gestellt.
Das ist eine Frage von Gegenseitigkeit.

für Postgres mit geänderter Primärschlüssel Generierung:
Code:
create table player (
   p_id serial PRIMARY KEY,
   p_name VARCHAR(40),
   p_password VARCHAR(255),
   p_email VARCHAR(255)); 
insert into player (p_name,   p_password,    p_email)
values
('john','12345678','john@dow.game'),
('jane','12345678','jane@djung.le');
select * from player;


create table vehicle(
    v_id serial PRIMARY KEY,
    v_typ VARCHAR(20),
    v_manufactuer VARCHAR(20),
    v_model VARCHAR(20)
);
insert into vehicle (v_typ, v_manufactuer, v_model)
values
( 'PKW', 'Mercedes', '200'),
( 'Traktor', 'K-700', 'VEB');
select * from vehicle;


create table player_vehicle(
    pv_id serial PRIMARY KEY,
    p_id INT,
    v_id INT,
    v_licensenumber  VARCHAR(40),
    FOREIGN KEY(p_id)
       REFERENCES player(p_id),
    FOREIGN KEY(v_id)
       REFERENCES vehicle(v_id));
insert into player_vehicle (p_id, v_id, v_licensenumber  )
values
(1, 1, 'B-DG-100'),
(1, 2, 'B-DG-101'),
(2, 1, 'B-DG-101');

select * from player_vehicle;
select * from player p, player_vehicle pv, vehicle v
where p.p_id = pv.p_id
 and pv.v_id = v.v_id;
 
"dabadepdu"
Danke dir da dann nochmal...bin jetzt ein bischen schlauer draus geworden..das löst mein Problem 1 schon gut, jetzt nur noch eine Frage zu dem MySQL Code Beispiel...unten wo die 'values' eingegeben sind in dein TABLE players_vehicles mit 1,1,... wo holst du die Werte her, das sind ja immer andere Werte...stehen dafür dann die Variablentyp-Kürzel i,i,s in der Klammer und zieht sich die Werte dann selber?

Danke schon mal für deine Geduld und Mühe
 
Die Vorgabe war Spieler und Fahrzeuge zu haben, siehe Tabelle Players und Vehicles.
Dann muss Du noch speichern, welcher Spieler welche Fahrzeuge "besitzt": tabelle players_vehicles
Wie man sieht: Alle angegebenen Werte sind Beispieldaten, die per insert in den Tabellen landen.

Die einzige "Magic" sind die Autoincrement Werte (oder Serial bei Postgres). Hier ist das Beispiel sogar recht schlampig. Denn es geht sozusagen eine Wette auf die von der Autoinc Funktion vergebenen Werte (für ein Forenbeispiel nicht pädagogisch wertvoll, aber nicht allzuweit aus dem Fenster gelehnt). Nach dem Insert folgt jeweils ein Select, das die vergebenen Werte anzeigt. Die werden in players_vehicles benutzt als Fremdschlüssel.

Wenn Du p_id nicht verstanden hast, hast Du auch v_id nicht verstanden und auch pv_id nicht. Hast Du einen der Werte verstanden, hast Du die anderen auch verstanden.
 
Die Vorgabe war Spieler und Fahrzeuge zu haben, siehe Tabelle Players und Vehicles.
Dann muss Du noch speichern, welcher Spieler welche Fahrzeuge "besitzt": tabelle players_vehicles
Wie man sieht: Alle angegebenen Werte sind Beispieldaten, die per insert in den Tabellen landen.

Die einzige "Magic" sind die Autoincrement Werte (oder Serial bei Postgres). Hier ist das Beispiel sogar recht schlampig. Denn es geht sozusagen eine Wette auf die von der Autoinc Funktion vergebenen Werte (für ein Forenbeispiel nicht pädagogisch wertvoll, aber nicht allzuweit aus dem Fenster gelehnt). Nach dem Insert folgt jeweils ein Select, das die vergebenen Werte anzeigt. Die werden in players_vehicles benutzt als Fremdschlüssel.

Wenn Du p_id nicht verstanden hast, hast Du auch v_id nicht verstanden und auch pv_id nicht. Hast Du einen der Werte verstanden, hast Du die anderen auch verstanden.

Hallo, ich hab das schon verstanden, aber jetzt denk ich ja schon einen Schritt weiter. Der Spieler 1 ist eingeloggt und beschließt sich den Truck 2 zu kaufen. Dieses mache ich über die "switch" Anweisung ...in diesem Fall case 2....daraus erfolgt die v_ID um die zu nutzen und p_ID muss ich mir doch dann über $_SESSION
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben