DropDown-Problem mit PHP und MySQL

d-braun

Erfahrenes Mitglied
Hallo,
ich bin gerade dabei ein Tippspiel zu programmieren.
In diesem Teil des Tippspiels werden die Wetten angezeigt.

Es wird aus der Datenbank ausgelesen welches der Aktuelle Spieltag ist und dieser wird dann auch angezeigt.

Jetzt möchte ich jedoch wenn ich im DropDown-Menü einen anderen Spieltag wähle diesen anzeigen.

Hier ist Datei. Ich hoffe ihr könnt euch was drunter Vorstellen.
PHP:
<?php
  require('dbconnect.php');

  echo "<form name=wetten>";
  echo "<select name=spieltag onChange=>";
  echo "<option value1>1. Spieltag</option>";
  echo "<option value=2>2. Spieltag</option>";
  echo "<option value=3>3. Spieltag</option>";
  echo "<option value=4>4. Spieltag</option>";
  echo "<option value=5>5. Spieltag</option>";
  echo "<option value=6>6. Spieltag</option>";
  echo "<option value=7>7. Spieltag</option>";
  echo "<option value=8>8. Spieltag</option>";
  echo "<option value=9>9. Spieltag</option>";
  echo "<option value=10>10. Spieltag</option>";
  echo "<option value=11>11. Spieltag</option>";
  echo "<option value=12>12. Spieltag</option>";
  echo "<option value=13>13. Spieltag</option>";
  echo "<option value=14>14. Spieltag</option>";
  echo "<option value=15>15. Spieltag</option>";
  echo "<option value=16>16. Spieltag</option>";
  echo "<option value=17>17. Spieltag</option>";
  echo "<option value=18>18. Spieltag</option>";
  echo "<option value=19>19. Spieltag</option>";
  echo "<option value=20>20. Spieltag</option>";
  echo "<option value=21>21. Spieltag</option>";
  echo "<option value=22>22. Spieltag</option>";
  echo "<option value=23>23. Spieltag</option>";
  echo "<option value=24>24. Spieltag</option>";
  echo "<option value=25>25. Spieltag</option>";
  echo "<option value=26>26. Spieltag</option>";
  echo "<option value=27>27. Spieltag</option>";
  echo "<option value=28>28. Spieltag</option>";
  echo "<option value=29>29. Spieltag</option>";
  echo "<option value=30>30. Spieltag</option>";
  echo "<option value=31>31. Spieltag</option>";
  echo "<option value=32>32. Spieltag</option>";
  echo "<option value=33>33. Spieltag</option>";
  echo "<option value=34>34. Spieltag</option>";
  echo "</select>";

  echo "<table border=0>";
  echo "<tr> ";
  echo "<td><strong>Spielpaarung</strong></td>";
  echo "<td><strong>Tipp</strong></td>";
  echo "<td><strong>Ergebniss</strong></td>";
  echo "<td><strong>Punkte</strong></td>";
  echo "</tr>";

  $output = "SELECT Spieltag FROM Info";
  $get = mysql_query($output);

  while(@$array = mysql_fetch_array($get))
  {
    $spieltag = $array['Spieltag'];
  }

  switch ($dropdown) {
    case 1: $spieltag = '1'; break;
    case 2: $spieltag = '2'; break;
    case 3: $spieltag = '3'; break;
    case 4: $spieltag = '4'; break;
    case 5: $spieltag = '5'; break;
    case 6: $spieltag = '6'; break;
    case 7: $spieltag = '7'; break;
    case 8: $spieltag = '8'; break;
    case 9: $spieltag = '9'; break;
    case 10: $spieltag = '10'; break;
    case 11: $spieltag = '11'; break;
    case 12: $spieltag = '12'; break;
    case 13: $spieltag = '13'; break;
    case 14: $spieltag = '14'; break;
    case 15: $spieltag = '15'; break;
    case 16: $spieltag = '16'; break;
    case 17: $spieltag = '17'; break;
    case 18: $spieltag = '18'; break;
    case 19: $spieltag = '19'; break;
    case 20: $spieltag = '20'; break;
    case 21: $spieltag = '21'; break;
    case 22: $spieltag = '22'; break;
    case 23: $spieltag = '23'; break;
    case 24: $spieltag = '24'; break;
    case 25: $spieltag = '25'; break;
    case 26: $spieltag = '26'; break;
    case 27: $spieltag = '27'; break;
    case 28: $spieltag = '28'; break;
    case 29: $spieltag = '29'; break;
    case 30: $spieltag = '30'; break;
    case 31: $spieltag = '31'; break;
    case 32: $spieltag = '32'; break;
    case 33: $spieltag = '33'; break;
    case 34: $spieltag = '34'; break;
    }

  $output = "SELECT Heim, Gast, ToreHeim, ToreGast FROM spiele WHERE Spieltag = $spieltag ORDER BY SpielID";
  $get = mysql_query($output);

  while(@$array = mysql_fetch_array($get))
  {

    $varheim = $array['Heim'];
    $vargast = $array['Gast'];
    $vartoreheim = $array['ToreHeim'];
    $vartoregast = $array['ToreGast'];

    echo "<tr> ";
    echo "<td align=left>$varheim : $vargast</td>";
    echo "<td align=center><input class=borders size=2 maxlength=2 name=toreheim>:<input class=borders size=2 maxlength=2 name=toregast></td>";
    echo "<td align=center>$vartore : $vargegentore</td>";
    echo "<td align=center></td>";
    echo "</tr>";

  }

  echo "</table>";
  echo "</form>";
  echo "<input type=button class=button value=Tippen>";

  require('dbdisconnect.php');
?>

Hat jemand ne Idee wie man das am besten lösen könnte?
Ich hab schon alles mögliche versucht.
Leider ohne Erfolg.

MFG

d-braun
 
Ich lesen den Spieltag aus der Datenbank aus und zeige den aktuellen Spieltag an.
Das funktioniert auch wunderbar.

Aber ich weiß nicht wie ich es realisieren soll einen anderen Spieltag anzeigen zu lassen.
Ihr müsst euch das so vorstellen:
Ihr kommt auf die Seite und da steht der aktuelle (sagen wir mal der 2.) Spieltag welchen mann dann tippen kann.
Wenn man nun im Dropdown-Menü einen anderen auswählt (sagen wir mal den 1.) soll dieser angezeigt werden.
Das müsste man mit <select... onChange=...> irgentwie lösen aber ich hab keine Ahnung wie.

MFG
d-braun
 
Um den ausgewählten Spieltag ausgewählt anzuzeigen, musst du es so realisieren, das der Spieltag der angezeigt werden soll den zusatz selected bekommt
so z.B.: echo '<option value="31" selected>31. Spieltag</option>';
 
versuchs mal so:


Zuerst muss du dir eine JS-Funktion schreiben:
Code:
function QuickJump(Formular)
{
	var Element = Formular.Ziel.selectedIndex;
	if (Formular.Ziel.options[Element].value != 0) 
	{
		location = Formular.Ziel.options[Element].value;
	}	
}

Danach erstellst du das DropDown-Feld
HTML:
<form name="Formular">
          <select name="Ziel" onchange="QuickJump(this.form);">
          <option value="http://www.abc.ch/index.php?incl=spieltage&wetten=1" <?php if($wetten=="1"){ echo"selected"; } ?> >1. Spieltag</option>
          <option <?php if($wetten=="2"){ echo"selected"; } ?> value="http://www.abc.ch/index.php?incl=spieltage&wetten=2">2. Spieltag</option>
          <option <?php if($wetten=="3"){ echo"selected"; } ?> value="http://www.abc.ch/index.php?incl=spieltage&wetten=3">3. Spieltag</option>
              
    </select>
    </form>

Und zu guter Letzt die Abfrage
PHP:
mysql_query("SELECT * FROM spieltage WHERE spieltag = '$wetten'");
 
Ich hab's nicht getestet, aber 1. kannst du die selectbox der Spieltage dynamisch ausgeben lassen:

PHP:
echo "<form name=wetten action=\"?\" method=\"POST\">";
echo "<select name=spieltag onChange=\"document.wetten.submit();\">";
for ($i=1;$i<=34;$i++) {
  if ($i == $_POST["spieltag"]) $sel = "SELECTED"; else $sel = "";
  echo "<option value=\"$i\" $sel>$i. Spieltag</option>";
}
echo "</select>";

2. des case $dropdown ..., wozu is des gut? :) würde es so abändern
PHP:
if (isset($_POST["spieltag"]) && !empty($_POST["spieltag"])) $spieltag = $_POST["spieltag"];
else $spieltag = $dropdown; // der Standard der ausgewaehlt sein sollte...

dadurch ist der Code viel übersichtlicher!

evtl hilfts ja!
 
Zuletzt bearbeitet:
Hi,
ich hab das jetzt mal ausprobiert aber irgentwie will das ned funktionieren.
Die Seite will einfach nicht neu laden.

Zur Erklärung vieleicht nochmal:
Im dropdown-Menü soll ausgewählt werden welcher Spieltag angezeigt wird.
Falls die Seite das erste mal aufgerufen wird soll der aktuelle Spieltag (welcher aus einer MySQL-Datenbank ausgelesen wird) angezeigt werden.

Ich komm hier einfach ned weiter.
Sieht vieleicht jemand den Fehler?

MFG
d-braun

PHP:
<?php
  require('dbconnect.php');

  session_start();
  $nick = $_SESSION["SessionID"];

  echo "<form name=wetten action='php/data/wetten.php' method=post>";
  echo "<form name=spieltagform action='index.php?pid=wetten' method=post>";
  echo "<select name=spieltag onChange='document.spieltagform.submit();'>";
  for ($i=1;$i<=34;$i++) {
    if ($i == $_POST["spieltag"]) $sel = "SELECTED"; else $sel = "";
    echo "<option value='$i' $sel>$i. Spieltag</option>";
  }
  echo "</select>";
  echo "</form>";

  echo "<table border=0>";
  echo "<tr> ";
  echo "<td><strong>Spielpaarung</strong></td>";
  echo "<td><strong>Tipp</strong></td>";
  echo "<td><strong>Ergebniss</strong></td>";
  echo "<td><strong>Punkte</strong></td>";
  echo "</tr>";

  $output = "SELECT Spieltag FROM Info";
  $get = mysql_query($output);

  while(@$array = mysql_fetch_array($get))
  {
    $varspieltag = $array['Spieltag'];
  }

  if (isset($_POST["spieltag"]) && !empty($_POST["spieltag"])) $spieltag = $_POST["spieltag"];
  else $spieltag = $varspieltag;

  $output = "SELECT SpielID, Status, Heim, Gast, ToreHeim, ToreGast, LogoHeim, LogoGast FROM spiele WHERE Spieltag = $spieltag ORDER BY SpielID";
  $get = mysql_query($output);

  $heimcount = '1';
  $gastcount = '1';
  $idcount = '1';

  while(@$array = mysql_fetch_array($get))
  {

    $spielid = $array['SpielID'];
    $status = $array['Status'];
    $varheim = $array['Heim'];
    $vargast = $array['Gast'];
    $vartoreheim = $array['ToreHeim'];
    $vartoregast = $array['ToreGast'];
    $varlogoheim = $array['LogoHeim'];
    $varlogogast = $array['LogoGast'];

    $getwette = mysql_query("SELECT 1 FROM wette WHERE Nick LIKE '".mysql_real_escape_string($nick)."' AND SpielID LIKE '".mysql_real_escape_string($spielid)."'");
    if( mysql_num_rows($getwette) > 0 ) 
      {

        $gettipp = "SELECT ToreHeim, ToreGast, Punkte FROM wette WHERE Nick LIKE '".mysql_real_escape_string($nick)."' AND SpielID LIKE '".mysql_real_escape_string($spielid)."'";
        $get2 = mysql_query($gettipp);
        while(@$array2 = mysql_fetch_array($get2))
        {
          $heimtipp = $array2['ToreHeim'];
          $gasttipp = $array2['ToreGast'];
          $punkte = $array2['Punkte'];

          echo "<tr>";
          echo "<td align=left><input type=hidden name=spielid$idcount value=$spielid><img src='php/data/logo/"."$varlogoheim".".gif'>:<img src='php/data/logo/"."$varlogogast".".gif'> "."$varheim : $vargast</td>";
          echo "<td align=center><input class=borders size=2 maxlength=2 name=toreheim$heimcount value=$heimtipp readonly>:<input class=borders size=2 maxlength=2 name=toregast$gastcount  value=$gasttipp readonly></td>";

          if ($status == 1)
            {
              echo "<td align=center>$vartoreheim : $vartoregast</td>";
              echo "<td align=center>$punkte</td>";
            }
          else
            {
              echo "<td align=center></td>";
              echo "<td align=center></td>";
            }

          echo "</tr>";
          $tippdone = "Sie habe Ihren Tipp bereits abgegeben!";
        }  
      }
    else
      {

        $currenttime = date("d.m.Y H:i:s");
        $termininfo = "SELECT Termin FROM info";
        $gettermininfo = mysql_query($termininfo);

        while(@$array3 = mysql_fetch_array($gettermininfo))
        {
          $termin = $array3['Termin'];
        }

        if ($currenttime > $termin)
          {
          echo "<tr>";
          echo "<td align=left><input type=hidden name=spielid$idcount value=$spielid><img src='php/data/logo/"."$varlogoheim".".gif'>:<img src='php/data/logo/"."$varlogogast".".gif'> "."$varheim : $vargast</td>";
          echo "<td align=center><input class=borders size=2 maxlength=2 name=toreheim$heimcount value='' readonly>:<input class=borders size=2 maxlength=2 name=toregast$gastcount  value='' readonly></td>";

          if ($status == 1)
            {
              echo "<td align=center>$vartoreheim : $vartoregast</td>";
              echo "<td align=center>0</td>";
            }
          else
            {
              echo "<td align=center></td>";
              echo "<td align=center></td>";
            }

          echo "</tr>";
          $tippdone = "Die Tipp-Abgabe ist leider nicht mehr möglich! Sie haben den Abgabetermin verpennt!";
          }
        else
         {
           echo "<tr> ";
           echo "<td align=left><input type=hidden name=spielid$idcount value=$spielid><img src='php/data/logo/"."$varlogoheim".".gif'>:<img src='php/data/logo/"."$varlogogast".".gif'> "."$varheim : $vargast</td>";
           echo "<td align=center><input class=borders size=2 maxlength=2 name=toreheim$heimcount>:<input class=borders size=2 maxlength=2 name=toregast$gastcount></td>";
           echo "<td align=center></td>";
           echo "<td align=center></td>";
           echo "</tr>";
           $tippdone = "<input type=submit class=button value=Tippen>";
         }

      }

    $heimcount++;
    $gastcount++;
    $idcount++;

  }

  echo "<input type=hidden name=spieltag value=$spieltag>";
  echo "</table>";
  echo "<p>".$tippdone."</p>";
  echo "</form>";

  require('dbdisconnect.php');

?>
 
hm ja stimmt.
Is aber nen Schönheitfehler.
Die Funktionsweiße beeinträchtigt das ned.

hubeR83 hast du ne Idee an was das liegt?
 
Habs mir jetzt nicht alles genau angeguckt, aber 1. schonmal, 2 formulare ineinander geschachtelt ist meines Wissens nicht möglich!
 
Zurück