Ausgabe Datenbankinhalt über 2 Tabellen

MisterMi

Erfahrenes Mitglied
Hallo,

ich habe 2 Tabellen mit folgenden Aufbau:

kader
username | spielerid
Schmidt82 | Müller
Schmidt82 | Robben
---

Spieler
spielerid | Wert | Punkte | Verein
müller | 18000000 | 9 | Bayern
robben | 20000000 |21 | Bayern

Nun habe ich im unteren Code bereits eine ausgabe der Spieler erstellt und benötige nun noch sowas wie ein innerjoin oder wie sich das nennt, so dass nicht nur die spieler angezeigt werden sondern auch noch die Werte dazu. Wie mache ich das?

Vielen Dank

PHP:
<?php

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
session_start();
echo '<h2>Willkommen '.$_SESSION['user'].'</h2>';

//Verbindung herstellen
$db = mysql_connect("xxx.de.mysql", "xxx_de", "xxx") or die ("Keine Verbindung möglich: ".mysql_error());
mysql_select_db("xxx_de",$db) or die ("Keine Verbindung möglich: ".mysql_error());

    mysql_select_db('xxx_de', $db)
            OR die ('Keine Verbindung möglich: ' . mysql_error());

    $sqle="SELECT spielerid FROM kader WHERE username = '" .mysql_real_escape_string($_SESSION["user"]) ."'";

    // Anzeige Effektivität

    $db_erg = mysql_query($sqle);

if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="300" height="500"><h5>';
echo '<h2>Ihr Effektivitätsteam:</h2>';
echo '<table border="1">';
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile['spielerid'] . "</td>";
  echo "</tr>";
}
echo "</table>";
echo "</h5></td>";
echo '<td align="left" valign="top" width="300" height="500"><h5>';

mysql_free_result( $db_erg );

    //Verbindung beenden
    mysql_close($db);
 
Hallo,

Du solltest deine Tabellen mit einer eindeutigen ID versehen und nicht als spielerid einen Namen verwenden.
So sollte es besser aussehen:
kader
id |username | spielerid
1 | Schmidt82 |3
2 |Schmidt82 | 4

Spieler
spielerid | Wert | Punkte | Verein | Name
3 | 18000000 | 9 | Bayern | Robben
4 | 20000000 |21 | Bayern | Müller

wobei ich das auch wieder in tabellen aufteilen würde:

Spieler:
id | Name | Vorname | Trickotnummer
---------------------------
1 | Müller | Thomas | 0815
2 | Robben | Arien | 0900

Kader:
id | teamid | spielerid
----------------------------
1 | 1 | 2
2 | 2 | 1

Teams:
id | Teamname
--------------------
1 | Fc Plattfuß
2 | Haudaneben

User:
id | Username | Passwort | teamid
--------------------------------------------
1 | Schmidt82 | xxxxxxx | 1
2 | Schmidt83 | xxxxxxx | 2


So kannst du immer über die eindeutige ID von der Datenbank referenzieren. Diese muss natürlich autoincrement sein. In der Session speicherst du die UserId, somit kannst du zum beispiel eine Anzeige der Spieler erwirken indem du die tabellen verknüpfst (JOINS).
 
ich dreh gleich durch...

die abfrage steht aber er schreibt mir nicht die dinge untereinander.
Ich habe insgesamt hier 2x4 Tabellenausgaben.
Da ich jeweils 4 Tabellen nebeneinander und dann drunter weitere 4 Tabellen haben möchte hab ich darum auch noch eine Tabelle gemacht aber Tabellenblock 2 beginnt drunter wo Tabelle 3 im Block 1 ist und nicht direkt drunter links wie es sein soll...

Hab alles probiert aber finde den Fehler nicht... :(

PHP:
 <HTML>
   $db_EMI = mysql_query($sql_E_Mirko);
    $db_EMA = mysql_query($sql_E_Martin);
    $db_ELU = mysql_query($sql_E_Ludwig);
    $db_EAL = mysql_query($sql_E_Alex);

    $db_PMI = mysql_query($sql_P_Mirko);
    $db_PMA = mysql_query($sql_P_Martin);
    $db_PLU = mysql_query($sql_P_Ludwig);
    $db_PAL = mysql_query($sql_P_Alex);

echo'Übersicht der Teams für Effektivität';

// Anzeige Effektivität Mirko

echo'<table>';
echo'<tr>';
echo'<td>';

if ( ! $db_EMI )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Mirko:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile1 = mysql_fetch_array( $db_EMI, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile1['spielerid'] . "</td>";
  echo "<td>". $zeile1['marktwert'] . "</td>";
  echo "<td>". $zeile1['verein'] . "</td>";
  echo "<td>". $zeile1['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_EMI );

echo'</td>';
echo'<td>';

// Anzeige Effektivität Martin

if ( ! $db_EMA )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Martin:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile2 = mysql_fetch_array( $db_EMA, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile2['spielerid'] . "</td>";
  echo "<td>". $zeile2['marktwert'] . "</td>";
  echo "<td>". $zeile2['verein'] . "</td>";
  echo "<td>". $zeile2['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";


mysql_free_result( $db_EMA );

echo'</td>';
echo'<td>';

 // Anzeige Effektivität Ludwig

if ( ! $db_ELU )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Ludwig:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile3 = mysql_fetch_array( $db_ELU, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile3['spielerid'] . "</td>";
  echo "<td>". $zeile3['marktwert'] . "</td>";
  echo "<td>". $zeile3['verein'] . "</td>";
  echo "<td>". $zeile3['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_ELU );

echo'</td>';
echo'<td>';

// Anzeige Effektivität Alex

if ( ! $db_EAL )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Alexander:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile4 = mysql_fetch_array( $db_EAL, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile4['spielerid'] . "</td>";
  echo "<td>". $zeile4['marktwert'] . "</td>";
  echo "<td>". $zeile4['verein'] . "</td>";
  echo "<td>". $zeile4['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_EAL );

echo'</td>';
echo'</tr>';
echo'<tr>';
echo'<td>';

// Anzeige Punkte Mirko

if ( ! $db_PMI )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Mirko:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile5 = mysql_fetch_array( $db_PMI, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile5['spielerid'] . "</td>";
  echo "<td>". $zeile5['marktwert'] . "</td>";
  echo "<td>". $zeile5['verein'] . "</td>";
  echo "<td>". $zeile5['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_PMI );

echo'</td>';
echo'<td>';

// Anzeige Punkte Martin

if ( ! $db_PMA )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Alexander:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile6 = mysql_fetch_array( $db_PMA, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile6['spielerid'] . "</td>";
  echo "<td>". $zeile6['marktwert'] . "</td>";
  echo "<td>". $zeile6['verein'] . "</td>";
  echo "<td>". $zeile6['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_PMA );

echo'</td>';
echo'<td>';

// Anzeige Punkte Ludwig

if ( ! $db_PLU )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Alexander:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile7 = mysql_fetch_array( $db_PLU, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile7['spielerid'] . "</td>";
  echo "<td>". $zeile7['marktwert'] . "</td>";
  echo "<td>". $zeile7['verein'] . "</td>";
  echo "<td>". $zeile7['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_PLU );

echo'</td>';
echo'<td>';

// Anzeige Punkte Alex

if ( ! $db_PAL )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
echo'<table>';
echo"<tr>";
echo '<td align="left" valign="top" width="350" height="500"><h5>';
echo '<h2>Alexander:</h2>';
echo '<table border="1">';
echo '<tr>';
  echo "<th>Spieler</td>";
  echo "<th>Marktwert</td>";
  echo "<th>Verein</td>";
  echo "<th>Punkte</td>";
  echo "</tr>";
while ($zeile8 = mysql_fetch_array( $db_PAL, MYSQL_ASSOC))
{
  echo "<tr>";

  echo "<td>". $zeile8['spielerid'] . "</td>";
  echo "<td>". $zeile8['marktwert'] . "</td>";
  echo "<td>". $zeile8['verein'] . "</td>";
  echo "<td>". $zeile8['punkte'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_PAL );

echo'</td>';
echo'</tr>';
echo'</table>';

    //Verbindung beenden
    mysql_close($db);
?>
</HTML>
 
Zuletzt bearbeitet von einem Moderator:
Und du erwartest jetzt das sich jemand diesen ganzen unformatierten Code anschaut?

Schau du dir vielleicht mal den Seitenquelltext an nachdem die Seite angezeigt wurde, dann findest du vielleicht selber woran es liegt.

Ohne zu wissen was du unter "...er schreibt es mir nicht untereinander..." verstehst, aber ich denke es ist eventuell ein HTML Fehler.
 
Notice: Undefined index: user in /customers/b/3/5/mirkolinho.de/httpd.www/out_all.php on line 6

Das ist das erste was man zu sehen bekommt wenn man sich den Seitenquelltext anschaut. Das sollte dir auch aufgefallen sein wenn du das auch gemacht hast.

Dann kommt 1 Zeile Code mit insgesammt 7269 Zeichen Länge, ohne auch nur einen Zeilenumbruch oder sonst was was es lesbar macht.

Ich habe mal versucht die HTML-Code zu formatieren, doch das macht wirklich keinen Sinn wie man hier erkennen kann:

HTML:
<table>
	<tr>
		<td>
			<table>
				<tr>
					<td align="left" valign="top" width="350" height="500">
						<h5>
							<h2>Mirko:</h2>
							<table border="1">
								<tr>
									<th>Spieler
					</td>
					<th>Marktwert
		</td>
			<th>Verein

			</td>

			<th>Punkte

			</td>

Ich habe jetzt extra so viele Tabulatoren gemacht um die zusammengehörenden Tags untereinander zu setzen. Diese Tabelle kann nicht korrekt dargestellt werden und ich habe dir oben schon geschrieben das du ein Problem mit dem HTML Code hast.

Wenn du jetzt schreibst "Alles schon probiert" dann kann ich das nicht wirklich glauben!
 
Das mit der Zeile 6 ist normal weil ich sie nicht von der Hauptseite aufrufe auf dieser Art und damit es keine Variable User gibt.

Gefunden, danke. Hatte wirklich 2x Table hintereinander jedes mal warum auch immer.

Ja ich werde mir den HTML Text die Tage mal ansehen aber ich war jetzt schon froh das ich den Fehler gefunden habe warum die Tabellen nicht untereinander standen.
 
Zurück