Zur Navigation

Berechnung PHP

1 tobi

Hallo zusammen,

ich habe folgendes im Script hinterlegt:

// sql-Abfrage 1 - Ermitteln Anzahl DB Samstags
$sql_samstag = "SELECT Count(*) FROM anmeldungen WHERE gemeldeteKlasse = '1' OR gemeldeteKlasse = '2'";
$result_samstag = mysql_query( $sql_samstag );
list($count_samstag) = mysql_fetch_row($result_samstag);
// max. Anzahl Teilnehmer Samstag - 128
$max_anzahl_samstag = 128;
// zusammengesetzt aus max. 64 Teilnehmer in Klasse 1 und 64 Teilnehmer in Klasse 2
$max_anzahl_samstag_jugend = 64;
$max_anzahl_samstag_dklasse = 64;

Im weiteren Verlauf habe ich nun

<p>Bisher sind insgesamt <b><?php echo $count_samstag?></b> von <b><?php echo $max_anzahl_samstag?></b> möglichen Meldungen zum Turnier 2012 bei uns eingegangen!</p>

angegeben.
Nun wird mir auf der Seite logischerweise die aktuelle Zahl aus der DB und die von mir festgesetzte Zahl 128 ausgegeben.
Beispiel: ... insgesamt 115 von 128 möglichen ...
Sind jetzt aus irgendwelchem Grund 129 Einträge in der DB, so würde ja ... insgesamt 129 von 128 möglichen ... angezeigt werden. Dies ist leider nicht in meinem Sinne ;)
Wie kann ich dies limitieren, dass nur max. die 128 angezeigt werden, auch wenn mehr in der DB wären.

Gruß Tobi

12.05.2012 17:59 | geändert: 12.05.2012 18:00

2 Jörg Kruse

Für die HTML-Ausgabe kannst du den Wert in PHP nachträglich korrigieren:

$count_samstag = ($count_samstag > $max_anzahl_samstag) ? $max_anzahl_samstag : $count_samstag;

Das ändert aber natürlich nichts daran, dass du mehr Anmeldungen in der Datenbanktabelle hast als $max_anzahl_samstag.

12.05.2012 18:14

3 tobi

cool, danke für den Schnippsel, es funzt :)

12.05.2012 18:22

4 tobi

Hallo,

ich nochmal ;)

Für den 2. Turniertag sind insgesamt 192 zulässig, diese werden mir nun auch so angezeigt.

Jetzt habe ich das Ganze darunter aber nochmals in 3 Wettbewerbe unterteilt. Auch dort soll, wenn insgeamt 192 da sind, nichts Weiteres mehr angezeigt werden. Akuell werden mir 62, 57 und 80 angezeigt, was die 192 ja übersteigen.

<p><b>Turniertag 2 - Wettbewerbe: A-Klasse, B-Klasse und C-Klasse - Sonntag 9. September 2012</b><br />
<p>Bisher sind insgesamt <b> <?php echo $count_sonntag = ($count_sonntag > $max_anzahl_sonntag) ? $max_anzahl_sonntag : $count_sonntag;?> </b> von <b> <?php echo $max_anzahl_sonntag?> </b> möglichen Meldungen zum Turnier 2012 bei uns eingegangen!</p>
Die Anzahl der Teilnehmer des Wettbewerbes <a class="links" href="http://test.de" title=\"Teilnehmer Wettbewerb A-Klasse">A-Klasse</a>: <b><?php echo $anzahl_aklasse?></b><br />
Die Anzahl der Teilnehmer des Wettbewerbes <a class="links" href="http://test.de" title=\"Teilnehmer Wettbewerb B-Klasse">B-Klasse</a>: <b><?php echo $anzahl_bklasse?></b><br />
Die Anzahl der Teilnehmer des Wettbewerbes <a class="links" href="http://test.de" title=\"Teilnehmer Wettbewerb C-Klasse">C-Klasse</a>: <b><?php echo $anzahl_cklasse?></b></p>

// sql-Abfrage 2 - Ermitteln Anzahl DB Sonntags
$sql_sonntag = "SELECT Count(*) FROM anmeldungen WHERE gemeldeteKlasse = '3' OR gemeldeteKlasse = '4' OR gemeldeteKlasse = '5'";
$result_sonntag = mysql_query( $sql_sonntag );
list($count_sonntag) = mysql_fetch_row($result_sonntag);
// max. Anzahl Teilnehmer Sonntag - 192
$max_anzahl_sonntag = 192;

// sql-Abfrage 3 - Ermitteln Anzahl A-Klasse + Teilweise Damen A (Turnierklasse = 5)
$sql_aklasse = "SELECT Count(*) FROM anmeldungen WHERE gemeldeteKlasse = '5'";
$result_aklasse = mysql_query( $sql_aklasse );
list($anzahl_aklasse) = mysql_fetch_row($result_aklasse);

// sql-Abfrage 4 - Ermitteln Anzahl B-Klasse + Teilweise Damen A (Turnierklasse = 4)
$sql_bklasse = "SELECT Count(*) FROM anmeldungen WHERE gemeldeteKlasse = '4'";
$result_bklasse = mysql_query( $sql_bklasse );
list($anzahl_bklasse) = mysql_fetch_row($result_bklasse);

// sql-Abfrage 5 - Ermitteln Anzahl C-Klasse + Teilweise Damen A (Turnierklasse = 3)
$sql_cklasse = "SELECT Count(*) FROM anmeldungen WHERE gemeldeteKlasse = '3'";
$result_cklasse = mysql_query( $sql_cklasse );
list($anzahl_cklasse) = mysql_fetch_row($result_cklasse);

// alle Klassen Sonntags zusammengesetzt
$anzahl_alle_klassen_sonntag = $anzahl_aklasse + $anzahl_bklasse + $anzahl_cklasse;

03.06.2012 16:01

5 Jörg Kruse

Wie wählst du denn am Ende die 192 aus, wenn sich schon mehr in der Datenbank befinden?

Eigentlich müsstest du die Anmeldungen doch schon beim Eintrag in die Datenbank begrenzen?

03.06.2012 19:28

6 tobi

Letztes Jahr hatte ich eine Begrenzung bei 192 gemacht, danach konnte sich keine mehr anmelden für A-C Klassen. Leider haben sich die Personen dann einfach für D oder Jugend angemeldet, somit denen den Platz geklaut und nen Hinweis dass sie A, B oder C spielen wollen. Dieses Jahr will ich dies offen lassen, jedoch soll er 193 keien Zusage erhalten, sondern einen Hinweis, dass Turnier voll und wir uns ggf. melden. Seine Daten wandern aber trotzdem in die Datenbank. Anzeigen möchte ich aber trotzdem nur 192.

03.06.2012 22:35

7 Jörg Kruse

Du kannst mit $anzahl_alle_klassen_sonntag ja genauso verfahren wie mit $count_samstag in Beitrag 2

04.06.2012 00:16

8 tobi

also so in der Richtung?
Die Anzahl der Teilnehmer des Wettbewerbes A-Klasse: <b><?php echo $anzahl_aklasse = ($anzahl_aklasse > $anzahl_alle_klassen_sonntag) ? $anzahl_alle_klassen_sonntag : $anzahl_aklasse;?></b><br />
Die Anzahl der Teilnehmer des Wettbewerbes B-Klasse: <b><?php echo $anzahl_bklasse = ($anzahl_bklasse > $anzahl_alle_klassen_sonntag) ? $anzahl_alle_klassen_sonntag : $anzahl_bklasse;?></b><br />
Die Anzahl der Teilnehmer des Wettbewerbes C-Klasse: <b><?php echo $anzahl_cklasse = ($anzahl_cklasse > $anzahl_alle_klassen_sonntag) ? $anzahl_alle_klassen_sonntag : $anzahl_cklasse;?></b></p>

04.06.2012 22:31

9 Jörg Kruse

Achso, du willst ja alle drei Einzelzahlen ausgeben.

Dann musst du zuerst definieren, nach welchem Verfahren du die Teilnehmerzahlen der drei Klassen denn kürzen willst.

04.06.2012 23:03

10 tobi

Ja, alle drei getrennt, aber insgesamt nicht über die 192.
Nach Meldeeingang die ersten 192 für die drei Klassen.

04.06.2012 23:06