Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 01:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



2 Tabellen miteinander verbinden, aber wie nur?

Discussion on 2 Tabellen miteinander verbinden, aber wie nur? within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
2 Tabellen miteinander verbinden, aber wie nur?

Hallo,

ich habe eine Tabelle Videospiel, wobei ich die Daten V_ID, Plattform, Titel und Fsk anzeigen lasse
Ausschnitt asu dem Dokument:

$sql = "SELECT V_ID, Titel, Plattform, FSK FROM videospiel";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> V_ID: ". $row["V_ID"]. " - Name: ". $row["Titel"]. " " . $row["Plattform"] . " " .$row["FSK"] . "<br>";
}
} else {
echo "0 Ergebnisse";
}

Jetzt möchte ich auch aus der Tabelle "Publisher" "Name" anzeigen lassen, wobei P_ID Primärschlüssel ist. Da es für spiele mehrere Publisher gibt, haben wir noch eine Tabelle und zwar die Tabelle "published" mit "P_ID" aus der Tabelle "Publisher"
und V_ID aus "videospiel". Wie kann ich jetzt den Publisher genau für das Spiel anzeigen lassen? Danke für eure Mühe! Mit dem Befehl joins sollte es eigentlich klappen aber weiß nicht wie ich das im PHP Dokument machen soll (Syntax und so).
Play4free1 is offline  
Old 05/14/2016, 20:29   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post
Hallo,

ich habe eine Tabelle Videospiel, wobei ich die Daten V_ID, Plattform, Titel und Fsk anzeigen lasse
Ausschnitt asu dem Dokument:

$sql = "SELECT V_ID, Titel, Plattform, FSK FROM videospiel";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> V_ID: ". $row["V_ID"]. " - Name: ". $row["Titel"]. " " . $row["Plattform"] . " " .$row["FSK"] . "<br>";
}
} else {
echo "0 Ergebnisse";
}

Jetzt möchte ich auch aus der Tabelle "Publisher" "Name" anzeigen lassen, wobei P_ID Primärschlüssel ist. Da es für spiele mehrere Publisher gibt, haben wir noch eine Tabelle und zwar die Tabelle "published" mit "P_ID" aus der Tabelle "Publisher"
und V_ID aus "videospiel". Wie kann ich jetzt den Publisher genau für das Spiel anzeigen lassen? Danke für eure Mühe! Mit dem Befehl joins sollte es eigentlich klappen aber weiß nicht wie ich das im PHP Dokument machen soll (Syntax und so).

PHP Code:
SELECT
   P_ID
   V_ID
,
   
Titel,
   
Plattform,
   
FSK
FROM
   videospiel
JOIN publisher
   ON publisher
.id videospiel.P_ID 
Also einfach in der Videospiel Tabelle die P_Id Spalte hinzufügen welche dann auf die Id des Publishers zeigt.


$row["SPALTENNAME"]
False is offline  
Thanks
1 User
Old 05/14/2016, 20:45   #3
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
danke! Ein einpaar Fragen noch:
1. Der Primärschlüssel ist doch Name, also einfach Name anstatt P_ID oder? P_ID haben wir doch weggelassen.
2. Bei $row["SPALTENNAME"] muss da einfach Name rein? Denke schon oder?
3. muss erst nach dem Join-Befehl ein simikolon? SELECT
P_ID
V_ID,
Titel,
Plattform,
FSK
FROM
videospiel
JOIN publisher
ON publisher.id = videospiel.P_ID ;

Oder zweimal ein simikolon?:
SELECT
P_ID
V_ID,
Titel,
Plattform,
FSK
FROM
videospiel ;
JOIN publisher
ON publisher.id = videospiel.P_ID ;
Play4free1 is offline  
Old 05/14/2016, 23:52   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post
danke! Ein einpaar Fragen noch:
1. Der Primärschlüssel ist doch Name, also einfach Name anstatt P_ID oder? P_ID haben wir doch weggelassen.
2. Bei $row["SPALTENNAME"] muss da einfach Name rein? Denke schon oder?
3. muss erst nach dem Join-Befehl ein simikolon? SELECT
P_ID
V_ID,
Titel,
Plattform,
FSK
FROM
videospiel
JOIN publisher
ON publisher.id = videospiel.P_ID ;

Oder zweimal ein simikolon?:
SELECT
P_ID
V_ID,
Titel,
Plattform,
FSK
FROM
videospiel ;
JOIN publisher
ON publisher.id = videospiel.P_ID ;
1.In der Videospiel Tabelle wäre V_ID der Primär Schlüssel und in der Publisher Tabelle P_ID.
Reintherotisch bräuchtest du in diesem Fall nicht mal ein Primär Schlüssel.
Er ist dafür da das diese Spalte unique sein muss, z.b. damit bei einem user der Logn (email z.b.) nur einmal vorhanden sein DARF.
Anderes Beispiel wäre z.b. wenn du foreign keys nutzt brauchst du auch ein Primär Schlüssel.


2. Korrekt, wenn ich mich nicht irre können jedoch Probleme auftreten wenn beide Tabellen die Spalte Name haben.
Dann musst du es im Sql so machen :
PHP Code:
SELECT   videospiel.name AS gameName,   publisher.name AS pubName
FROM
   videospiel
JOIN publisher
   ON publisher
.id videospiel.P_ID 
Und dann natürlich $row["gameName"].


3.Zwei auf keinen Fall, wenn eins am Ende.. Wobei Semikolons irrelevant sind und komplett weggelassen werden können.
False is offline  
Thanks
1 User
Old 05/15/2016, 01:53   #5
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
Ich meine, dass P_ID gelöscht wurde da der NAme des Publisher als Primärschlüssel ebenso geeignet ist. Ich habe mein Code verändert.

$sql = "SELECT V_ID, Titel, Plattform, FSK FROM videospiel
JOIN Publisher
ON Publisher.Name = videospiel.V_ID" ;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> V_ID: ". $row["V_ID"]. " - Name: ". $row["Titel"]. " " . $row["Plattform"] . " " .$row["FSK"] . $row["Publisher.Name"] . "<br>";
}
} else {
echo "0 results";
}
Es kommt 0 Results raus also muss es da noch einen fehler geben.
Nochmal als Zusammenfassung.
1. Tabelle videospiel welche "Plattform", "V_ID", "Fsk" und "Titel" beinhaltet - V_ID ist Primärschlüssel
2. Tabelle Publisher welche "Name" und "Ort" beinhaltet aber nur "Name" soll angezeigt werden - "Name" ist Primärschlüssel
3. Tabelle published welche "V_ID" und "Name" beinhaltet interne Beziehung wurde eingestellt - keins von beiden ist in dieser Tabelle primärschlüssel

Quote:
Originally Posted by .ƒaℓsє. View Post
1.In der Videospiel Tabelle wäre V_ID der Primär Schlüssel und in der Publisher Tabelle P_ID.
Reintherotisch bräuchtest du in diesem Fall nicht mal ein Primär Schlüssel.
Er ist dafür da das diese Spalte unique sein muss, z.b. damit bei einem user der Logn (email z.b.) nur einmal vorhanden sein DARF.
Anderes Beispiel wäre z.b. wenn du foreign keys nutzt brauchst du auch ein Primär Schlüssel.


2. Korrekt, wenn ich mich nicht irre können jedoch Probleme auftreten wenn beide Tabellen die Spalte Name haben.
Dann musst du es im Sql so machen :
PHP Code:
SELECT   videospiel.name AS gameName,   publisher.name AS pubName
FROM
   videospiel
JOIN publisher
   ON publisher
.id videospiel.P_ID 
Und dann natürlich $row["gameName"].


3.Zwei auf keinen Fall, wenn eins am Ende.. Wobei Semikolons irrelevant sind und komplett weggelassen werden können.

Ich habe das Gefühl ich habe in der Tabelle published eine Fehler bei der Beziehung gemacht... Keine ahnung obs stimmt.
Play4free1 is offline  
Old 05/15/2016, 02:06   #6


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post
Ich meine, dass P_ID gelöscht wurde da der NAme des Publisher als Primärschlüssel ebenso geeignet ist. Ich habe mein Code verändert.

$sql = "SELECT V_ID, Titel, Plattform, FSK FROM videospiel
JOIN Publisher
ON Publisher.Name = videospiel.V_ID" ;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> V_ID: ". $row["V_ID"]. " - Name: ". $row["Titel"]. " " . $row["Plattform"] . " " .$row["FSK"] . $row["Publisher.Name"] . "<br>";
}
} else {
echo "0 results";
}
Es kommt 0 Results raus also muss es da noch einen fehler geben.
Nochmal als Zusammenfassung.
1. Tabelle videospiel welche "Plattform", "V_ID", "Fsk" und "Titel" beinhaltet - V_ID ist Primärschlüssel
2. Tabelle Publisher welche "Name" und "Ort" beinhaltet aber nur "Name" soll angezeigt werden - "Name" ist Primärschlüssel
3. Tabelle published welche "V_ID" und "Name" beinhaltet interne Beziehung wurde eingestellt - keins von beiden ist in dieser Tabelle primärschlüssel




Ich habe das Gefühl ich habe in der Tabelle published eine Fehler bei der Beziehung gemacht... Keine ahnung obs stimmt.
Mach Screenshots oder gib uns mehr Infos sonst können wir nicht helfen
False is offline  
Thanks
1 User
Old 05/15/2016, 02:07   #7
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
kommt sofort
Play4free1 is offline  
Old 05/15/2016, 02:13   #8
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
So siehts aus

EDIT: Man erkennt leider nichts... Externe Dienste benötigt man aber kenne keine wirklich xD
Attached Images
File Type: jpg Tabelle_Videospiel.jpg (13.0 KB, 5 views)
File Type: jpg Tabelle_publisher.jpg (10.0 KB, 5 views)
File Type: jpg Tabelle_published.jpg (14.2 KB, 5 views)
File Type: jpg Beziehungsübersich_published.jpg (11.0 KB, 5 views)
Play4free1 is offline  
Old 05/15/2016, 02:20   #9
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4








1. Screenshot -> Beziehungsübersicht von der Tabelle published
2. Screenshot -> Tabellenstruktur published
3. Screenshot -> Tabelle videospiel
4. Screenshot -> Tabelle Publisher

Quote:
Originally Posted by .ƒaℓsє. View Post
Mach Screenshots oder gib uns mehr Infos sonst können wir nicht helfen
Hoffe alls wichtige ist drauf^^



Code^^
Play4free1 is offline  
Old 05/15/2016, 02:59   #10


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post








1. Screenshot -> Beziehungsübersicht von der Tabelle published
2. Screenshot -> Tabellenstruktur published
3. Screenshot -> Tabelle videospiel
4. Screenshot -> Tabelle Publisher



Hoffe alls wichtige ist drauf^^



Code^^
Das kann auch nicht funktionieren, du hast einerseits keine Id bei der publisher Tabelle und im Sql guckst du ob der Name vom spiel dem vom Entwickler übereinstimmt was ja sehr sehr selten der Fall ist

Im Anhang hast du mal eine kleine Datenbank(bzw das Sql was du importieren kannst) wie du es besser machen kannst.
Dort hast du auch eine View wo du z.b. einen passendes SQL findest.
Attached Files
File Type: zip Play4Free.zip (1.4 KB, 1 views)
False is offline  
Thanks
1 User
Old 05/15/2016, 03:09   #11
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
Oh, sie ist ja ganz anders . Muss mich umschauen ^^. Danke für deine Hilfe und Mühe!
Wie mache ich das jetzt mit dem JOIN-Befehl?

Quote:
Originally Posted by .ƒaℓsє. View Post
Das kann auch nicht funktionieren, du hast einerseits keine Id bei der publisher Tabelle und im Sql guckst du ob der Name vom spiel dem vom Entwickler übereinstimmt was ja sehr sehr selten der Fall ist

Im Anhang hast du mal eine kleine Datenbank(bzw das Sql was du importieren kannst) wie du es besser machen kannst.
Dort hast du auch eine View wo du z.b. einen passendes SQL findest.
Könntest du für einen Datensatz mein PHP-Code so ergänzen, dass das klappt?
Wäre echt nett von dir !
Play4free1 is offline  
Old 05/15/2016, 03:31   #12


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post
Oh, sie ist ja ganz anders . Muss mich umschauen ^^. Danke für deine Hilfe und Mühe!
Wie mache ich das jetzt mit dem JOIN-Befehl?



Könntest du für einen Datensatz mein PHP-Code so ergänzen, dass das klappt?
Wäre echt nett von dir !
Alles vorkauen will ich nicht, da auch ein Lerneffekt da sein soll.
Habe dir sogar eine Datenbank(SQL) geschrieben

Probier erst einmal selber ein wenig und wenn du echt nicht weiter kommst beschreibe dein Problem genauer, was du probiert hast und wo du nicht weiter kommst und wieso.
False is offline  
Old 05/15/2016, 03:42   #13
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
Quote:
Originally Posted by .ƒaℓsє. View Post
Alles vorkauen will ich nicht, da auch ein Lerneffekt da sein soll.
Habe dir sogar eine Datenbank(SQL) geschrieben

Probier erst einmal selber ein wenig und wenn du echt nicht weiter kommst beschreibe dein Problem genauer, was du probiert hast und wo du nicht weiter kommst und wieso.
So lerne ich aber schon immer^^. Ich such mir die Lösung und gehe sie solange durch bis ich verstanden habe wie sie zustande kommt^^

Bitte . Ich verstehe grad gar nichts. Ich will keine Erklärung, ich brauche nur den PHP-Code. Dann sollte ich alles verstehen können. Nur für den ersten Datensatz^^, nicht mal einen ganzen Datensatz sondern nur für Publisher^^. Man muss Join - das habe ich herausgefunden - benutzen.

Ach ja, ich will weiter an meiner eigenen Datenbank arbeiten. Ich möchte nu sehen, wie du das mit deiner Datenbank machst und ob das funktioniert und dann versuche ich meine datenbank zu korrigieren. Wenn ich dann fertig bin, sage ich dir Bescheid , aber dafür muss ich sehen wie du das mit deiner machst..^^
Play4free1 is offline  
Old 05/15/2016, 16:18   #14


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by Play4free1 View Post
So lerne ich aber schon immer^^. Ich such mir die Lösung und gehe sie solange durch bis ich verstanden habe wie sie zustande kommt^^

Bitte . Ich verstehe grad gar nichts. Ich will keine Erklärung, ich brauche nur den PHP-Code. Dann sollte ich alles verstehen können. Nur für den ersten Datensatz^^, nicht mal einen ganzen Datensatz sondern nur für Publisher^^. Man muss Join - das habe ich herausgefunden - benutzen.

Ach ja, ich will weiter an meiner eigenen Datenbank arbeiten. Ich möchte nu sehen, wie du das mit deiner Datenbank machst und ob das funktioniert und dann versuche ich meine datenbank zu korrigieren. Wenn ich dann fertig bin, sage ich dir Bescheid , aber dafür muss ich sehen wie du das mit deiner machst..^^
Okay so lerne ich meistens auch, dann schreib nachher was dein Problem war und wie es zu Lösen war

PHP Code:
<?php
$host        
"localhost";$user        "root";$password "";$db           "Play4Free";
$conn = new mysqli($host$user$password$db);
if(
$conn->connect_error){        die("Connectieon failed {$conn->connect_error}");}
$sql "SELECT        videospiel.titel        AS spielTitel,        plattform.name          AS plattform,        publisher.name          AS publisher,        genre.name              AS genreName,        genre.beschreibung      AS genreBeschreibung,        fsk.min_alter           AS minAlterFROM videospielJOIN plattform        ON plattform.id = videospiel.plattformJOIN fsk        ON fsk.id = videospiel.fskJOIN genre        ON genre.id = videospiel.genreJOIN publisher        ON publisher.id = videospiel.publisher";
$result $conn->query($sql);
if (
$result->num_rows  <= 0){        echo "0 results";}else{        while($row $result->fetch_assoc())        {                $spielTitel             $row['spielTitel'];                $plattform              $row['plattform'];                $genreName              $row['genreName'];                $genreBeschreibung      $row['genreBeschreibung'];                $minAlter               $row['minAlter'];
                echo 
"{$spielTitel} {$plattform} {$genreName} {$genreBeschreibung} {$minAlter}<br>";
        }}
$conn->close()?>
Datenbank wäre die, die ich hochgeladen habe.
Natürlich musst du es auf deine Anpassen

€: besser formatiert :
False is offline  
Thanks
1 User
Old 05/15/2016, 17:07   #15
 
elite*gold: 0
Join Date: Aug 2014
Posts: 47
Received Thanks: 4
Ich bin ein ganz großer Trottel. Kein Spaß:
Suche seit Stunden den Fehler und anstatt mal in meine Datenbank zu schauen schaue ich auf meinen Code...
Der Fehler: Vergessen die Zahlen einzusetzen in der Tabelle videospiel....
MAAAAANNNNNNNNNNNNNNNNNN EYYYYYYYYYYYYYYYYYYYYYYYYYYY WIE KANN MAN SO BLÖD SEIN

Danke dir!!!!!!

Quote:
Originally Posted by .ƒaℓsє. View Post
Datenbank wäre die, die ich hochgeladen habe.
Natürlich musst du es auf deine Anpassen

€: besser formatiert :
Wirklich vielen Dank! Ohne dich hätte ich es nicht geschafft. Und ich wunder mich die ganze Zeit warum ees nicht funktioniert... Ich kanns immer noch nicht fassen...
Play4free1 is offline  
Reply

Tags
mysql, php, tabelle verbinden


Similar Threads Similar Threads
Servers miteinander verbinden. Wie?
05/11/2013 - Minecraft - 3 Replies
Heyho. Wir besitzen einen Debian Root Server und haben mehrere Minecraft Server drauf laufen. Meine Frage ist, wie verbinden wir die? Kein Transporter Plugin! MfG-
PSC´s miteinander verbinden
09/30/2012 - Main - 3 Replies
Hallo, wollte mir eben ein Spiel mit 2 10€ PSC holen, aber nun habe ich bemerkt, dass man nur noch eine gleichzeitig benutzen kann. Gibt es irgendeine Möglichkeit diese zwei zu verbinden und alles auf ein Konto? vanios
2 Lan Kabel miteinander verbinden?
04/14/2012 - Technical Support - 5 Replies
Guten Tag, seit gestern besitze ich eine XBox 360 die so ca 8 m von meinem PC entfernt steht, für den PC habe ich ein 15m Lan kabel bis zum router ,und bei der Xbox war ein ca 2m Lankabel dabei , nun habe ich mir bei Amazon nochmal ein 10m Lankabel bestellt , gibt es sowas wie ein adapter wo man dass so einteilen kann das ich das 15 m kabel dort reinstekcken kann und dann 2 kleine für pc und xbox? Danke
2 Computer miteinander verbinden
08/22/2010 - Main - 6 Replies
Hi an alle ;) Ich wollte mal fragen ob es möglich ist meinen PC mit einem anderen PC über ein Lan- bzw Crossover-Kabel zu Verbinden. Das alles hat nicht mit Internet zu tun... ich möchte nur zb ein Programm was für 2 Computer ist benutzen können, dazu muss das Programm auf beiden Rechnern installiert sein und es muss eine Verbindung zwischen den beiden PC's sein. Nochmal: Ich möchte nicht den einen PC als Router für i-netoder so benutzen, Internet brauche ich in der Zeit nicht!! ...
2 Scripts miteinander verbinden
02/24/2010 - AutoIt - 1 Replies
Hallo ich will mall wissen wie ich diese 2 Skripts verbinden kann #include <GUIConstants.au3> $Form1 = GUICreate("Multi Bot by .FreakY", 250, 250, 200, 200) $Button3 = GUICtrlCreateButton("AN", 45, 135, 161, 33, 0) $Button4 = GUICtrlCreateButton("AUS", 45, 175, 161, 33, 0) $label2=GuiCtrlCreateLabel("AutoAtack", 100,115,101,15) GUISetState(@SW_SHOW) guictrlsetstate($button4,$gui_disable) $state = false



All times are GMT +1. The time now is 01:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.