Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hi,

mein Name is Wolfang und wollt mal lieb fragen ob mir einer kurz weiterhelfen

könnte. Wie kann ich zwei Tabellen mit INNER JOIN verbinden, weil ich möchte meine echos in eine Tabelle setzen und da is das bisl blöd mit den while schleifen. Deswegen würde ich gerne eine virtuelle Tabelle gerne haben

wo man die 3 Spalten auslesen kann. Meine Datensätze stehen am Ende vom

Beitrag. Es muß irgendwo beim ON der Fehler sein...

Bin echt um jede Hilfe dankbar:)

Ursprüngliches Script mit 2 while schleifen wo das verschachteln nicht möglich macht


$sql2 = mysql_query("SELECT kat_thumb_up FROM admin_video_kategorie");
while($row2 = mysql_fetch_array($sql2)) {
echo "<img src=/fsr/kategorie_video/kategoriebilder/".$row2['kat_thumb_up']."/>\n";
}

$sql = mysql_query("SELECT DISTINCT katname, katid FROM admin_video ORDER BY katid");
while($row = mysql_fetch_array($sql)) {
echo "<a href=/fsr/video.php?kat=".$row['katid'].">".$row['katname']."</a>";
}
[/PHP]

Und jetzt meine 2 Lösungsansätze wo jedoch leider nicht funktionieren:

[PHP]
$sql = ("SELECT admin_video_kategorie.kat_thumb_up,admin_video.katid,admin_video.katname FROM admin_video_kategorie INNER JOIN admin_video ON admin_video_kategorie.kat_thumb_up = admin_video.katname");
while($row = mysql_fetch_array($sql)) {
echo "<img src=/fsr/kategorie_video/kategoriebilder/".$row['kat_thumb_up']."/>\n";
echo "<a href=/fsr/video.php?kat=".$row['katid'].">".$row['katname']."</a>";
}

//2te Idee

$sql = ("SELECT katid, katname FROM admin_video INNER JOIN admin_video_kategorie ON admin_video.kat_thumb_up = admin_video_kategorie.kat_thumb_up");
while($row = mysql_fetch_array($sql)) {
echo "<img src=/fsr/kategorie_video/kategoriebilder/".$row['kat_thumb_up']."/>\n";
echo "<a href=/fsr/video.php?kat=".$row['katid'].">".$row['katname']."</a>";
}


///// Tabellen

CREATE TABLE admin_video
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
katid varchar( 50 ) NOT NULL,
katname varchar( 50 ) NOT NULL,
video_up varchar( 100 ) NOT NULL,
thumb_up varchar( 100 ) NOT NULL,
land varchar( 50 ) NOT NULL,
datum_ort varchar( 50 ) NOT NULL,
baureihe varchar( 50 ) NOT NULL
)
;
CREATE TABLE admin_video_kategorie
(
kat INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
kategorie varchar( 50 ) NOT NULL,
kat_thumb_up varchar( 100 ) NOT NULL
)
;

Anhand Deines Tabellen Layouts ist mir nicht klar wie die Tabellen referenziert sind. Ein Join, egal welcher, muss zwei Tabellen anhand einer PK-FK-Beziehung verknüpfen. Außerdem ist mir völlig schleierhaft warum Du die "katid" auf der "video" Tabelle als VarChar deklarierst, aber auf der "katheogrie" Tabelle als int. Außerdem wäre der "katname" gegen die die 2. Normalform.

Ich würde Dich bitte zunächst Deine Tabellen in die 3. Normalform zu bringen: Normalisierung (Datenbank) ? Wikipedia

Danke für die schnelle Antwort erstmal:), mein Zeil ist es beide Tabellen

zusammenfüge. Könnest du mir das bitte zeigen?

Und müssen eigendlich alle Spalten angegeben sein auch wenn ich nur

kat_thumb_up,katid und katname brauche?

Tabelle "admin_video_kategorie" mit den Spalten (kat,kategorie,kat_thumb_up)

Tabelle "admin_video" mit den Spalten (id,katid,katname,video_up,thumb_up,land,datum_ort ,baureihe)

Der Primärchlüssel von "admin_video_kategorie" ist kat und von "admin_video" ist id.

Problem ist, das der KatName in die andere Tabelle gehört (Normalisierung), und dass dein Fremdsschlüssel vom selben Format (int) sein muss, wie die ID der zu joinenden Tabelle.

Wenn dieses gegeben ist, kann man eine SQL-Abfrage über beide Tabellen designen, in der nur die benötigten Felder ausgegeben werden.

Jetzt kommen (vor allem aufgrund der zweiten Bemerkung) nur Fehler raus.

Das verstehe ich nicht so ganz. Könntest du das kurz verwirklichen weil auch

nach studenlangen lesen komme ich nicht weiter:(

Nun ich bin überhaupt neu in Foren, kenne das nicht, wo kann man seine Frage posten hier?

Könntest du das kurz verwirklichen weil auch

nach studenlangen lesen komme ich nicht weiter:(

Das wird niemand für Dich erledigen (können), denn einmal benötigt man für die Normalformen ein paar Daten und zweitens wird hier niemand wissen, wie Deine Tabellen auszusehen haben. Es wäre für jeden ein Ratespiel, das niemanden etwas bringt. Vor allem solltest Du verstehen was die Normalisierungen bewirken und warum man das macht.

Der gepostete Wikipedia-Artikel enthält ein sehr ähnliches Beispiel, Du musst dieses nur auf Deine beiden Tabellen umsetzen

Wie meinst du Ratespiel? Es sind doch alle Angaben gegeben.

Welche Spalte braucht jetzt nen anderen Typ.

Möchte doch nur beide Tabellen in einen sql befehl vereinen, so das ich

auf alle spalten zugreifen kann

admin_video

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

katid varchar( 50 ) NOT NULL,

katname varchar( 50 ) NOT NULL,

video_up varchar( 100 ) NOT NULL,

thumb_up varchar( 100 ) NOT NULL,

land varchar( 50 ) NOT NULL,

datum_ort varchar( 50 ) NOT NULL,

baureihe varchar( 50 ) NOT NULL

admin_video_kategorie

kat INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

kategorie varchar( 50 ) NOT NULL,

kat_thumb_up varchar( 100 ) NOT NULL

Wie meinst du Ratespiel? Es sind doch alle Angaben gegeben.

Weil ich nicht weiß welche Spalten anhand welcher Beziehung verknüpft werden sollen. Ich kann mir zwar etwas zusammen reimen, aber das hilft relativ wenig.

Möchte doch nur beide Tabellen in einen sql befehl vereinen, so das ich

auf alle spalten zugreifen kann

Ich weiß was Du willst und ich sage Dir, so wie Du es jetzt hast, geht es nicht, weil die Tabellen nicht in der dritten Normalform sind. Du solltest bei den Grundlagen der Datenbanktechnik beginnen und ein ERD entwerfen:

Entity-Relationship-Modell ? Wikipedia

wenn Du dieses dann hast überführst Du es in die Tabellen und bringst es in die dritte Normalform:

Normalisierung (Datenbank) ? Wikipedia

Poste dann einmal das ERD und die dazugehörigen Tabellenstrukturen, dann kann man auch Dir auch mit dem passenden SQL Statement helfen.

Ein Datenbankdesign besteht nicht daraus, dass man einfach ein paar Tabellen anlegt, sondern diese auch richtig modelliert (und auch wenn es letztendlich nur 2 Tabellen sind)

Folgende Lösung wäre möglich:

admin_video

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

katid INT NOT NULL,

--> löschen: katname varchar( 50 ) NOT NULL,

video_up varchar( 100 ) NOT NULL,

thumb_up varchar( 100 ) NOT NULL,

land varchar( 50 ) NOT NULL,

datum_ort varchar( 50 ) NOT NULL,

baureihe varchar( 50 ) NOT NULL

admin_video_kategorie

kat INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

katname varchar( 50 ) NOT NULL,

kat_thumb_up varchar( 100 ) NOT NULL

So könnte dein SQL- Befehl aussehen

SELECT video_up, kat_thumb_up, katid, katname

FROM admin_video, admin_video_kategorie,

WHERE admin_video.katid = admin_video_kategorie.kat

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.