Formular Select Frage

  • Themenstarter Themenstarter starfoxfs
  • Beginndatum Beginndatum
S

starfoxfs

Hi zusammen,

Hab mal ne kleine Frage und zwar habe ich mir ein Anmeldeformular geproggt das auch alles soweit funktioniert. Nun habe ich eine Frage und zwar könnte man den Bereich <select><option> indem ich beim Anmelden Rassen auswählen kann (beispiel Menschen , Nachtelfen etc) so steuern das wenn in meiner DB beispielsweise 25 Mitglieder bei der Rasse drinstehen das select Feld ausgeblendet wird ?
Dann noch eins wenn meinetwegen alle 4 Rassen mit je 25 Mitgliedern voll sind das dann das Anmeldeformular nicht erscheint sondern ein Text "Aufnahmestopp" oder sowas.
 
Dann darfst Du nur die Rassen aus der Datenbank holen, die weniger als 25 Mitglieder haben. Und diese dürfen dann auch nur in die Liste mit aufgenommen werden. Dazu musst Du den HTML-Code für die Liste dynamisch generieren.

snuu
 
jo der iss schon dynamisch, meinste ich kann das mit ner schönen if else Abfrage machen oder gibts da noch ne andere Möglichkeit ?
 
Du musst ja nur die Rassen anzeigen, die weniger als 25 Mitglieder haben. Also gleich das SQL-Statement dahingehend einschränken und die zurückgegebenen Rassen in die Liste einfügen.

snuu
 
Ok ich hätte es beispielsweise so gemacht :

PHP:
if($mitglieder_anzahl_menschen == "25") {
echo "<SELECT name="rasse">
<OPTION value="nachtelfen">Nachtelfen</OPTION>
<OPTION value="gnome">Gnome</OPTION>
<OPTION value="zwerge">Zwerge</OPTION>
</SELECT>";
}else
{
echo "<SELECT name="rasse">
<OPTION value="menschen">Menschen</OPTION>
<OPTION value="nachtelfen">Nachtelfen</OPTION>
<OPTION value="gnome">Gnome</OPTION>
<OPTION value="zwerge">Zwerge</OPTION>
</SELECT>";
}

Müsste man halt dann für jede Rasse eine if Abfrage machen.
 
jo deswegen wie könnte man es denn leichter machen :)

erklär mal genauer am liebsten wär mir ein beispiel code dann versteh ichs nämlich eher. Bin zwar kein PHP Newbie mehr aber sagen wir mal Neuling :p
 
Zuletzt bearbeitet von einem Moderator:
Angenommen Du hast eine Tabelle für die Rassen und eine für die Mitglieder:

Code:
Rassen          Mitglieder
-----------     -------------
* RAS_ID        * MGL_ID
  RAS_NAME        MGL_NAME
                  RAS_ID

Zu jedem Mitglied wird ein Verweis auf die zugehörige Rasse abgelegt.

Nun holst Du Dir nur die Rassen aus der Datenbank, die weniger als 25 Mitglieder haben und zeigst sie in der Auswahlliste an:

Code:
  $sql = "select RAS_NAME, count(MGL_ID)
          from Rassen LEFT  JOIN Mitglieder ON Rassen.RAS_ID = Mitglieder.RAS_ID
          group by Rassen.RAS_ID
          having count(MGL_ID) < 25";
  $result = mysql_query($sql) or die (mysql_error());

  echo '<select name="xyz">';
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo '<option value="'.$row['RAS_NAME'].'">'.$row['RAS_NAME'].'</option>';
  }
  echo '</select>';

Wäre ein ungetestetes Beispiel.

snuu
 
Zuletzt bearbeitet:
Jo das hab ich soweit verstanden bloß gibt es dabei ein kleines Problem wenn ich alles in einer table hätte wäre das ja kein Problem nur ist es so aufgebaut:

Code:
table rasse               table bb1_users
-----------                -------------
* RAS_ID                     *userid 
RAS_NAME                      MGL_NAME
                              RAS_ID ( 0 keine Rasse und dann 1-4 sind die Rassen wie in RAS_ID)

Die Mitglieder muss ich leider in bb1_users lassen weil das ganze mit meinem Forum verknüpft ist.

Noch ein Problem gibt es und zwar soll nicht bei allen Rassen wenn sie 25 Mitglieder erreichen ausgeblendet werden, sondern nur bei 3 Rassen, bei der 4ten Rasse schon bei 24 Mitgliedern.
 
Keiner ne Idee ? wäre mir echt wichtig das hinzubekommen.
Wenigstens ein Lösungsansatz ;)
 
Zurück