Turnierdaten auslesen

hallo zusammen,

wir veranstalten ein turnier. für dieses turnier muß man sich online anmelden.
das anmelden und auslesen funktioniert.
ich möchte dass ganze noch ein wenig erweitern.

teil 1 beim auslesen klappt:

Teilnehmerstatisktik

Bisher sind insgesamt 84 Meldungen zum Turnier 2009 bei uns eingegangen!

Welcher Verein hat die meisten Teilnehmer?
Teilnehmer Damen: 7 zu den gemeldeten Teilnehmer Damen
Teilnehmer Herren A: 17 zu den gemeldeten Teilnehmer Herren A
Teilnehmer Herren B: 31 zu den gemeldeten Teilnehmer Herren B
Teilnehmer Herren C: 29 zu den gemeldeten Teilnehmer Herren C

darunter würd ich jetzt gerne haben teil 2 haben, der folgendermaßen aussehen sollte:
tabelle
anzahl (teilnehmer) und verein
bsp. 4 / ttv musterhausen
3 / ttv mustermann
2 / ttv musterfran

nur wie kann ich teil 2 realisieren?

mein code:

include "../zugang_2.php.inc";

error_reporting(E_ALL);

$sql = "
SELECT turnierklassen.name, turnierklassen.url, COUNT(ppc_anmeldungen.id) AS anzahl FROM turnierklassen
LEFT JOIN ppc_anmeldungen ON turnierklassen.id = ppc_anmeldungen.turnierklasse
GROUP BY turnierklassen.id
ORDER BY turnierklassen.name";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

$result = mysql_query ( $sql );

$teilnehmerliste="";
$anzahl="";

while (list($turnierklasse, $url ,$teilnehmeranzahl) = mysql_fetch_row ($result))
{
  if ($teilnehmeranzahl >= 0)  {
        $teilnehmerliste.='Teilnehmer ' . $turnierklasse . ': <b>'  . $teilnehmeranzahl .  '</b> zu den gemeldeten Teilnehmer ' . $url . '<br>';
        $anzahl= $anzahl + $teilnehmeranzahl;
  }
}

echo "<p>Bisher sind insgesamt <b> ".$anzahl." </b> Meldungen zum Turnier 2009 bei uns eingegangen!</p>";
echo "<p>Welcher Verein hat die meisten Teilnehmer?</p>\n";
echo $teilnehmerliste;

$sql = "
SELECT id, verein FROM ppc_anmeldungen WHERE turnierklasse";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo "<br>";
echo "<br>";
echo "<table width=\"80%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
echo "<td></td>";
echo "<td>Verein</td>";
echo "</tr>";

$anzahl = 1;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $anzahl . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "</tr>";
$anzahl++;
}
echo "</table>";

mysql_free_result( $db_erg );

mysql_close($link);
echo "<br>";

schon mal vorab ein danke

mfg tobsp

hallo

Überleg bitte mal, was wir brauchen um dir einen Code zu liefern…
Mir persönlich fehlt da die MySQL Tabelle (/Tabellen)

mfg Joey

mysql_query("INSERT INTO ppc_anmeldungen (nachname, vorname, email, verein, spielklasse, position, turnierklasse, eintrag, timestamp) VALUES ('$nachname', '$vorname', '$email', '$verein', '$spielklasse', '$position', '$turnierklasse5', '$eintrag', NOW())")

<?php $dat = mysql_query("SELECT verein FROM ppc_anmeldungen"); $vereine = array(); while($verein = mysql_fetch_object($dat)) { if(!in_array($verein->verein, $vereine)) array_push($vereine, $verein->verein); } ?>
Sollte mal n lösungsansatz sein :wink:
am ende dieses Codes erhälst du in $vereine ein Array, mit allen angemeleten Vereinen. (Habs nicht ausprobiert)
[size=85]selbstverständlich kannst du auch mysql_fetch_row anstelle von mysql_fetch_object nehmen, dann musst du einfach noch den folgecode anpassen :wink:[/size]

in_array()
array_push()

Jeder Verrein

[code]SELECT verein, COUNT(*) as count FROM ppc_anmeldungen GROUP BY verein[/code]
Jeder Verrein + Anzahl der Spieler

Jeder Verrein

Jeder Verrein + Anzahl der Spieler

Ich wusste doch, dass es SELECT UNIQUE geben muss :ps:

Dann verwends auch :p

danke schonmal, aber irgendwie mach ich da noch was falsch :frowning:

include "../zugang_2.php.inc";

error_reporting(E_ALL);

$sql = "
SELECT turnierklassen.name, turnierklassen.url, COUNT(ppc_anmeldungen.id) AS anzahl FROM turnierklassen
LEFT JOIN ppc_anmeldungen ON turnierklassen.id = ppc_anmeldungen.turnierklasse
GROUP BY turnierklassen.id
ORDER BY turnierklassen.name";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

$result = mysql_query ( $sql );

$teilnehmerliste="";
$anzahl="";

while (list($turnierklasse, $url ,$teilnehmeranzahl) = mysql_fetch_row ($result))
{
  if ($teilnehmeranzahl >= 0)  {
        $teilnehmerliste.='Teilnehmer ' . $turnierklasse . ': <b>'  . $teilnehmeranzahl .  '</b> zu den gemeldeten Teilnehmer ' . $url . '<br>';
        $anzahl= $anzahl + $teilnehmeranzahl;
  }
}

echo "<p>Bisher sind insgesamt <b> ".$anzahl." </b> Meldungen zum Turnier 2009 bei uns eingegangen!</p>";
echo "<p>Welcher Verein hat die meisten Teilnehmer?</p>\n";
echo $teilnehmerliste;

$sql = "
SELECT verein, COUNT(*) as count FROM ppc_anmeldungen GROUP BY verein";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo "<br>";
echo "<br>";
echo "<table width=\"80%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
echo "<td>Teilnehmer</td>";
echo "<td>Verein</td>";
echo "</tr>";

//$anzahl = 1;
//while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $anzahl . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "</tr>";
//$anzahl++;
}
echo "</table>";

mysql_free_result( $db_erg );

mysql_close($link);
echo "<br>";

... echo $zeile['count'] ."</td><td>". $zeile['verein']; ... :bandit:

stimmt, oh man, so schwer is des gar net

kann ich auch nach anzahl sortieren? also meiste teilnehmer an den anfang?

mit order by oder so?

Ehm ich glaube das sollte gehen, aber frag nicht mich, sondern michi7x7 :ps:
Ne, kannst mal das probieren, bin mir aber nicht sicher, ob es nicht funktionert :p

SELECT verein, COUNT(*) as count FROM ppc_anmeldungen GROUP BY verein ORDER BY COUNT(SELECT verein, COUNT(*) as count FROM ppc_anmeldungen GRPOUP BY verein)

sollte es schon machen.

sollte es schon machen.

ja mit michi´s code werden die teilnehmer sortiert, allerdings ist der verein mit den meisten teilnehmern am ende und der mit den wenigsten am anfang. würde dass aber gerne umgekehrt haben, also meiste teilnehmer am anfang und wenigste am ende der tabelle.

ist dies auch ohne weiters möglich?

Ist ja auch alles logisch :ps:

SELECT COUNT(*) AS count, verein FROM ppc_anmeldungen GROUP BY verein ORDER BY count DESC :wink:

super ihr beiden vielen dank.

ihr seid die besten :slight_smile:

hallo zusammen,

ich habe bei einer anderen datei wieder ein kleines problem. ich würde gerne nach datum sortieren lassen. wie muß ich dass angeben??
im monent sieht mein code so aus:

$sql = " SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen WHERE turnierklasse = '1'";

sollte der code dann so aussehen?

$sql = " SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen WHERE turnierklasse = '1' ORDER BY timestamp DESC";

vielen dank schon mal im voraus.

mfg tobsp