tabellen hinzufügen

DieterWeb

Mitglied
also was ich will is net einfach zu erklären aber ich versuch es mal :) also:
es ist für eine clansite und es geht um die clanwars sektion.
und zwar ist die ausgabe etwas kompliziert.
grundsätzlich will ich die clanwars in etwa so eine tabelle packen:

<table>
<tr>
<td>name des spiels<td>
</tr>
<tr>
<td>gegner</td>
<td>ergebnis</td>
</tr>
dann beginnt die while schleife die, die einzelnen wars ausgibt in:
<tr>
<td>$gegner</td>
<td>$ergebnis</td>
</tr>
dann kommt das ende der while schleife
</table>

so das is ja auch alles kein problem. was ich nu will is das er auf der clanwars.php mehrere dieser tabellen ausgibt für verschiedene spiele. auch das ist net so wild ich wiederhole das einfach und selecte einfach pro tabelle nur die WHERE spiel=svenbomwollen (beispiel). jetzt aber kommt mein problem. ich möchte das ein admin über ein menü nicht nur ergebnisse eintragen kann, sondern auch ein neues spiel hinzufügen kann, das er also solche tabellen hinzufügen kann. meine idee war die ganze tabelle nochmal in eine while schleife hängen aber das funzt net, das ja jede einzelne tabelle ein anderes select hat. zB erste tabelle:
SELECT gegner, ergebnis FROM clanwars WHERE spiel=svenbomwollen
und die nächste tabelle hat dann
SELECT gegner, ergebnis FROM clanwars WHERE spiel=minesweeper
jetzt bin ich ein wenig ratlos wie man das umsetzen könnte.
hoffe einer von euch hat ne idee.
 
warum holst du dir denn überhaupt jeden datensatz einzeln? hol dir doch einfach alle datensätze auf einmal und gib die dann nacheinander aus.

PHP:
<?php
$res = mysql_query("SELECT * FROM clanwars;");
while ($row = mysql_fetch_array($res))
{
    ?>
<table>
<tr>
    <td colspan="2"> <?php echo $row["name"]; ?> </td>
</tr>
<tr>
    <td> gegner </td>
    <td> ergebnis </td>
</tr>
<tr>
    <td> <?php echo $row["gegner"]; ?> </td>
    <td> <?php echo $row["ergebnis"]; ?> </td>
</tr>
</table>
    <?php
}
mysql_free_result($res);
?>

so ähnlich dürfte das dann jedenfalls aussehen.
 
hmpf so gibt er mir nen table aus in etwa wie fogt:
----------------------------------------
Sven Bomwollen
Gegner Ergebnis
Dieter 99:00

Minesweeper
Gegner Ergebnis
Peter 64:68

Minesweeper
Gegner Ergebnis
Hans 56:32

Sven Bomwollen
Gegner Ergebnis
Horst 54:54
-----------------------------------------
was ich aber wollte war in etwa sowas
-----------------------------------------
Sven Bomwollen
Gegner Ergebnis
Dieter 99:00
Horst 54:54

Minesweeper
Gegner Ergebnis
Peter 64:68
Hans 56:32
-----------------------------------------
und die einzelnen ergebnisse sortiert nach id. so in etwa hatte ich mir das vorgestellt. plus die möglichkeit später über ein menü spiele hinzuzufügen
 
wo ist das problem? dann verschiebt man die schleife einfach in die tabelle und fügt noch eine zusätzliche zeile ein. so schwer ist das alles nicht.
 
wenn ich die while schleife innerhalb der tabelle verschiebe wäre die überschrift der tabelle also der name des spiels ja ausserhalb der schleife und das funzt ja dann net. ausserdem soll sich ja die ganze tabelle immer wiederholen. also isses net ganz so einfach die schleife innerhalb der tabelle zu machen. ich weiss net ob ihr mich net versteht oder ich euch net. also ich versuchs mal so zu erklären:
was ich brauch is folgendes, bzw das soll sich immer wiederholen:

<table>--------------------------------------
$name
---------------------------------------------
Gegner Ergebnis
---------------------------------------------
Ergebnisse, die zu $name gehören
(zB alle Ergebnisse mit $name=Minesweeper)
</table>-------------------------------------

so dieser table soll nun alle zeilen mit dem ergebnissen von minesweeper füllen und wenn keine ergebnisse für Minesweeper mehr da sind soll er einen neuen table der gleichen art starten, diesmal allerdings mit zB $name=SvenBomwollen. und dann soll er soviele tables machen wie verschiedene spiele in der db sind. ich ahne sowas das ich dafür 2 while schleifen brauch eine die den table immer wiederholt und eine die den table füllt, aber sicher bin ich net.
 
so müsste es gehen:

PHP:
<?php
$res = mysql_query("SELECT name FROM clanwars GROUP BY name;");
while ($row = mysql_fetch_array($res))
{
    ?>
<table>
<tr>
    <td colspan="2"> <?php echo $row["name"]; ?> </td>
</tr>
<tr>
    <td> gegner </td>
    <td> ergebnis </td>
</tr>
<tr>
   <? 

    $res2 = mysql_query("SELECT * FROM clanwars WHERE name =" . $row["name"] . ";");
    while ($row2 = mysql_fetch_array($res2)
    {   
       echo "<td>" . $row["gegner"] . "</td>";
       echo "<td>" . $row["ergebnis"] . "</td>";
    }
    mysql_free_result($res2);

   ?>
</tr>
</table>
    <?php
}
mysql_free_result($res);
?>
 
PHP:
<?php
$connID = mysql_connect ("localhost", "user", "pass");
@mysql_select_db ("schwuka", $connID);
$test = "SELECT spiel FROM skclanwars GROUP BY spiel";
$res = mysql_query ($test, $connID);
while ($row = mysql_fetch_array($res))
{
    ?>
<table>
<tr>
    <td colspan="2"> <?php echo $row["spiel"]; ?> </td>
</tr>
<tr>
    <td> gegner </td>
    <td> ergebnis </td>
</tr>
<tr>
   <? 
   	$test2 = "SELECT ergebnis, gegner FROM skclanwars WHERE spiel =" . $row["spiel"] . ";";
    $res2 = mysql_query($test2, $connID);
    while ($row2 = mysql_fetch_array($res2))
    {   
       echo "<td>" . $row["gegner"] . "</td>";
       echo "<td>" . $row["ergebnis"] . "</td>";
    }
   ?>
</tr>
</table>
    <?php
}
mysql_close ($connID);
?>
so hab ich das ganze eingebaut. leider bekomme ich die fehlermeldung: Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\schwuka\test.php on line 21
Line 21 ist der beginn der inneren while schleife. allerdings kann ich da keinen fehler entdecken. die mysql tables und rows sind alle richtig.
woran könnte das liegen?
also die erste while funzt nur die 2. net
 
Zuletzt bearbeitet:
Zurück