Members Squad?

vodka

Mitglied
Hallo also ich hab mal versucht eine Squads funktion einzubauen bei meinem Member Script!Z.b. das ich Squads adden kann und dan den Member zum Squad einteilen kann!

Die Tabellen sehen so aus:

squads:
id
squadname
squadtitel

members:
id
squadid
nickname etc...

PHP:
  <?php
// Verbindung mit der Datenbank erstellen //
$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

$sql = "select * from $tabellesquads where id = '1'";
$qry = mysql_db_query($db_name,$sql,$db);
$data = mysql_fetch_array($qry);

$squadname = $data["squadname"];
$squadtitel = $data["squadtitel"];

$sql = "select * from $tabellemembers where squadid = '1'";
$qry = mysql_db_query($db_name,$sql,$db);
$data = mysql_fetch_array($qry);

$nickname = $data["nickname"];
$aufgabe = $data["aufgabe"];
$status = $data["status "];
$email = $data["email"];
$icq = $data["icq"];
$favmap = $data["favmap"];
$favwaffe = $data["favwaffe"];
$favage = $data["favage"];
$verbindung = $data["verbindung"];
$id = $data["id"];


if($status == "aktiv")
{
   $farbe = "#006600";
}
else
{
   $farbe = "#990000";
}

echo "<table width=533 border=0 cellspacing=0 cellpadding=0>
  <tr>
    <td height=25 valign=middle background=images/navigation_05.jpg><table width=533 border=0 cellspacing=0 cellpadding=0>
        <tr>
          <td width=20>&nbsp;</td>
          <td width=287><strong>$squadtitel</strong></td>
          <td width=206><div align=right></div></td>
          <td width=20>&nbsp;</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td valign=top background=images/content.jpg><table width=533 border=0 cellspacing=0 cellpadding=0>
        <tr valign=top>
          <td width=20 height=19 valign=top>&nbsp;</td>
          <td colspan=2><div align=center>
            <table width=490 height=8 border=0 cellpadding=0 cellspacing=0>
              <tr>
                <td width=111><div align=left>$nickname</div></td>
                <td width=98><div align=left>$aufgabe</div></td>
                <td width=83><div align=left><font color=$farbe>$status</font></div></td>
                <td width=80><div align=left><a href=http://wwp.mirabilis.com/scripts/Search.dll?to=$icq>$icq</a></div></td>
                <td width=53><div align=left><a href=mailto:$email>email</a></div></td>
                <td width=65><div align=right><a href=index.php?action=mdetails&id=$id>[profil]</a></div></td>
              </tr>
            </table> 
            </div></td>
          <td width=20 valign=top>&nbsp;</td>
        </tr>
    </table></td>
  </tr>
  <tr>
    <td valign=top><img src=images/navigation_18.jpg width=533 height=16></td>
  </tr>
</table>";

  ?>

Es geht alles wunderbar nur das Problem ist jetzt wen ich ein Squad hinzufüge muss ich es auch hier tun aber ich will das es das automatisch macht!

Ein Kolleg von mir hat gesagt das ich eine Schleife machen muss das dass geht weis aber ned genau wie kann mir das jemand sagen?
 
Versteh ich das richtig, du willst hier also alle Squads inkl. aller darin enthaltenen Members auflisten lassen oder was?
Eigentlich solltest du dich für dieses wirklich einfache Problem mal genauer mit den Grundlagen von PHP und MySQL befassen. Du brauchst nicht für jedes Squad oder jedes Mitglied eine eigene SQL-Abfrage senden. Stattdessen solltest du gleich alle relevanten Datensätze auf einmal abfragen und das zurückgelieferte Array in einer WHILE-Schleife durchlaufen.
Da ich heute meinen guten Tag habe, hier mal ein Script, was den gewünschten Effekt erzielen sollte:

PHP:
<?php 
// Verbindung mit der Datenbank erstellen // 
$db = mysql_connect($db_host, $db_user, $db_pass); 
mysql_select_db ($db_name) or die ("Cannot connect to database"); 

$sql = mysql_query("SELECT * FROM ".$tabellesquads);
while ($data = mysql_fetch_array($sql)) {
    $squadname = $data["squadname"]; 
    $squadtitel = $data["squadtitel"]; 

    echo "<table width=533 border=0 cellspacing=0 cellpadding=0> 
  <tr> 
    <td height=25 valign=middle background=images/navigation_05.jpg><table width=533 border=0 cellspacing=0 cellpadding=0> 
        <tr> 
          <td width=20>&nbsp;</td> 
          <td width=287><strong>$squadtitel</strong></td> 
          <td width=206><div align=right></div></td> 
          <td width=20>&nbsp;</td> 
        </tr> 
    </table></td> 
  </tr> 
  <tr> 
    <td valign=top background=images/content.jpg><table width=533 border=0 cellspacing=0 cellpadding=0> 
        <tr valign=top> 
          <td width=20 height=19 valign=top>&nbsp;</td> 
          <td colspan=2><div align=center> 
            <table width=490 height=8 border=0 cellpadding=0 cellspacing=0>";

    $sql_members = mysql_query("SELECT * FROM ".$tabellemembers." WHERE squadid = ".$data['id']);
    while ($member = mysql_fetch_array($sql_members) {
        $nickname = $member["nickname"]; 
        $aufgabe = $member["aufgabe"]; 
        $status = $member["status "]; 
        $email = $member["email"]; 
        $icq = $member["icq"]; 
        $favmap = $member["favmap"]; 
        $favwaffe = $member["favwaffe"]; 
        $favage = $member["favage"]; 
        $verbindung = $member["verbindung"]; 
        $id = $member["id"]; 
        $farbe = ($status == "aktiv") ? "#006600" :  "#990000";
        
        echo "<tr> 
                <td width=111><div align=left>$nickname</div></td> 
                <td width=98><div align=left>$aufgabe</div></td> 
                <td width=83><div align=left><font color=$farbe>$status</font></div></td> 
                <td width=80><div align=left><a href=http://wwp.mirabilis.com/scripts/Search.dll?to=$icq>$icq</a></div></td> 
                <td width=53><div align=left><a href=mailto:$email>email</a></div></td> 
                <td width=65><div align=right><a href=index.php?action=mdetails&id=$id>[profil]</a></div></td> 
              </tr>";

    }

    echo "</table> 
            </div></td> 
          <td width=20 valign=top>&nbsp;</td> 
        </tr> 
    </table></td> 
  </tr> 
  <tr> 
    <td valign=top><img src=images/navigation_18.jpg width=533 height=16></td> 
  </tr> 
</table>"; 
}
?>

So sollte das Ganze dann mal aussehen.
Ich hoffe, du kernst auch was draus und arbeitest nicht nach dem Prinzip "Copy 'n' Paste"!
Zur Lektüre:
[phpf]while[/phpf]
und natürlich die Grundlagen über die Verwendung von PHP in Verbindung mit einer Datenbank (zu finden im Tutorials-Bereich)!

PS: Statt "SELECT * ... " zu verwenden, zähle lieber in deiner Abfrage alle Spaltennamen auf, die du abfragen möchtest.
 
Zuletzt bearbeitet:
Zurück