[PHP & MySQL] 2 Datenbankabfragen gleichzeitig / Mehrere Datensätze in einer Tabellenspalte anzeigen

Remember
*grins* Da bin ich wieder. großes Grinsen
Ich hab es jetzt schon durch Google gejagt und leider trotzdem nichts gefunden, deshalb hoffe ich jetzt einfach (mal wieder ^^) auf den Rat unserer Genies hier smile

Ich habe 3 Tabellen für Turniere. In der ersten stehen die Grundinformationen und in der zweiten die Disziplinen. Ich habe in der ersten Tabelle auto_increment für eine TurnierID eingestellt und habe dann bei der zweiten Tabelle nochmal die TurnierID (damit es richtig zugeteilt werden kann) und nochmals eine weiterlaufende ID für jeden Wettkampf. So weit, so gut. Jetzt würde ich aber auch gerne die Disziplinen richtig anzeigen lassen. D.h. Ich habe eine php-Datei mit einer stinknormalen HTML-Tabelle, wo erstens die Grundinformationen abgerufen werden sollen und zweitens aber eben auch die entsprechenden Disziplinen angezeigt werden sollen. Aber leider hasst mich PHP ja und soo ... zeigt er mir jetzt nur die Grundinfos an und kein Fitzelchen Disziplinen. unglücklich

Code:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
<html>
<head>
<title>SHAKESPEAR</title>
<link rel=stylesheet href=styli.css type=text/css>
</head>

<h2>Ausstehende Turniere</h2>

<?php

// Verbindung zur Datenbank
include("datenbank.php");

$sql "SELECT * FROM turnierausrichten2 WHERE turnierid = '$Data[id]'";
$result mysql_query($sql);
while ($Data mysql_fetch_assoc($result)) {
$disziplin $Data[disziplin];
}

// Hier die Abfrage übersetzt: RUFE * (alle Spalten) VON der Tabelle Pferd auf WO in der Spalte Besitzer nichts steht.
$Ergebnis mysql_query("SELECT * FROM turnierausrichten");


// Wenn das Ergebnis 0 ist gib aus
     if (@mysql_num_rows($Ergebnis) == 0) {
    echo "Es gibt keine ausstehenden Turniere.";
    }

    else {

// Sonst zeige an .. 
        while($Data mysql_fetch_array($Ergebnis)) {

$heute time();

$heute date("d.m.Y"$heute);
$heute explode("."$heute);
$tag $heute[0];
$monat $heute[1];
$jahr $heute[2];
$heute mktime(0,0,0,$monat,$tag,$jahr);

$datum $Data["datum"];
$datum explode("."$datum);
$tag $datum[0];
$monat $datum[1];
$jahr $datum[2];
$datum mktime(0,0,0,$monat,$tag,$jahr);

if($heute $datum) {

        // Der Name wird ausgegeben .. die HTML Elemente sind frei anpassbar- Vor " muss aber immer ein \. 
        // Der Steckbriefname lautet Pferd. Diesem wird jetzt die ID des Pferdes angehängt, damit die Datei nachher weiß, welche Daten sie abfragen muss.
        // Ihr könnt die ganzen anderen Infos auch angeben .. sprich $Data[Jahrgang] oder $Data[Geschlecht]
         echo "<h3><a href=turnier.php?id=$Data[id]>$Data[turniername]</a></h3>
<table width=100%>
<tr><td class="hengst" width=15%><b>Turniername</td>  <td>$Data[turniername]</td></tr>
<tr><td class="hengst" width=15%><b>Datum</td>  <td>$Data[datum]</td></tr>
<tr><td class="hengst" width=15%><b>Disziplin(en)</td>  <td>$disziplin</td></tr>
</table><br>
";
    }}
}
mysql_close();
?>






</html>
Leila
warum spaltest du zweimal ein Datum erst in Einzelvariablen auf, um dann hinterher wieder nen timesptamp draus zu machen? für die ausgabe reicht doch der reine timestamp. ALso wenn du es nicht als Datentyp timestamp sondern als int in der DB-Tabelle stehen hast.
Schau mal hier: http://www.php-einfach.de/php-tutorial/php-datum.php
Leila
deswegen hab ich da noch nen Satz drangehängt, das hab ich dann auch später gemerkt, dass es das sein könnte
Stelo
Übrigens zum Thema "Zwei Datenbankanfragen gleichzeitig":

http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/

php:
1:
$sql "SELECT * FROM turnierausrichten2 t2 JOIN turnierausrichten t1 ON t2.TID = t1.TID WHERE turnierid = '$Data[id]'";
Remember
Um den Tiestamp gings doch gar nich großes Grinsen
Der funktioniert dank BlackTear nämlich supertoll ;D

Danke Stelo für die Seite. Hab sie mir mal durchgelesen, damit ich das auch kapier, was du da gemacht hast undn ich glaub, dass ichs kapiert hab großes Grinsen
Aber der Code, den du da geschrieben hast funktioniert bei mir nicht ... ich habs jetzt so gemacht:

php:
1:
$sql "SELECT * FROM turnierausrichten JOIN turnierausrichten2 ON turnierausrichten2.turnierid = turnierausrichten.id";


Er zeigt das jetzt auch alles ganz brav an, macht aber leider für jede Disziplin ein neues Turnier (ich kann das nicht beschreiben xD schau mal hier)
Aber er sollte ja eigentlich alle Disziplinen eines Turnieres in der einen Spalte anzeigen. oO

Ich war mir eigentlich ziemlich sicher, dass ich den Abschluss des PHP-Teils nur irgendwo anders machen müsste. Aber irgendwie hat er mir dann immer nochmal eine vollständige Tabelle gemacht (mit Namen Datum blaaa...), obwohl ich ja nur nochmal die Disziplin haben wollte. Ich find leider einfach nicht den richtigen Platz für den Abschluss und habs jetzt wieder "auf Anfang" gestellt.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
<html>
<head>
<title>SHAKESPEAR</title>
<link rel=stylesheet href=styli.css type=text/css>
</head>

<h2>Ausstehende Turniere</h2>

<?php

// Verbindung zur Datenbank
include("datenbank.php");

// Hier die Abfrage übersetzt: RUFE * (alle Spalten) VON der Tabelle Pferd auf WO in der Spalte Besitzer nichts steht.
$sql "SELECT * FROM turnierausrichten JOIN turnierausrichten2 ON turnierausrichten2.turnierid = turnierausrichten.id";
$Ergebnis mysql_query($sql);

// Wenn das Ergebnis 0 ist gib aus
     if (@mysql_num_rows($Ergebnis) == 0) {
    echo "Es gibt keine ausstehenden Turniere.";
    }

    else {

// Sonst zeige an .. 
        while ($Data mysql_fetch_assoc($Ergebnis)) {

$heute time();

$heute date("d.m.Y"$heute);
$heute explode("."$heute);
$tag $heute[0];
$monat $heute[1];
$jahr $heute[2];
$heute mktime(0,0,0,$monat,$tag,$jahr);

$datum $Data["datum"];
$datum explode("."$datum);
$tag $datum[0];
$monat $datum[1];
$jahr $datum[2];
$datum mktime(0,0,0,$monat,$tag,$jahr);

if($heute $datum) {

        // Der Name wird ausgegeben .. die HTML Elemente sind frei anpassbar- Vor " muss aber immer ein \. 
        // Der Steckbriefname lautet Pferd. Diesem wird jetzt die ID des Pferdes angehängt, damit die Datei nachher weiß, welche Daten sie abfragen muss.
        // Ihr könnt die ganzen anderen Infos auch angeben .. sprich $Data[Jahrgang] oder $Data[Geschlecht]
         echo "<h3><a href=turnier.php?id=$Data[id]>$Data[turniername]</a></h3>
<table width=100%>
<tr><td class="hengst" width=15%><b>Turniername</td>  <td>$Data[turniername]</td></tr>
<tr><td class="hengst" width=15%><b>Datum</td>  <td>$Data[datum]</td></tr>
<tr><td class="hengst" width=15%><b>Disziplin(en)</td>  <td>$Data[disziplin]</td></tr>
</table><br>";
    }}
}
mysql_close();
?>




</html>
Remember
Jetzt zeigt er schonmal nur noch ein Turnier an. Aber leider auch nur eine Disziplin...