Problem der richtigen Daten-Ausgabe in einer Tabelle

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem der richtigen Daten-Ausgabe in einer Tabelle

    Hi,

    ich speichere in einer mysql-table jeweils ein Ergebnis mit der dazugehörigen Wettkampf-Nr. (wie Spieltag beim Fussball)
    pro Schütze ab.

    Nun will ich je nach mittels POST übergebenem Schütze(n) die Anzahl der td-Tags (für Überschrift und Ergebnisse) automatisch anhand der vorhandenen Einträge in der MySQL-DB generieren lassen.

    Dies klappt mit u.g. Code auch bereits, aber es gibt ein Problem....

    - wenn jetzt z.b. zwei Schützen mittels POST übergeben werden....
    - Der erste Schütze hat in allen sagen wir 3 stattgefundenen Wettkämpfen mitgeschossen, alle td-Zellen sind somit gefüllt
    - Der zweite Schütze hat beim 2. Wettkampf gefehlt.... Mit u.g. Code wird nun das Ergebnis des 3. Wettkampfes bei der Spalte des eigentlichen 2. Wettkampfes eingetragen...

    Also wie kann ich erreichen, dass bei fehlendem 2. Ergebnis trotzdem eine (leere) td-Zelle generiert wird, so dass die Ergebnisse unter der richtigen Spalte stehen

    Wahrscheinlich sehr kompliziert für einen Aussenstehenden zu verstehen, daher hier das mom. Ergebnis lt. obigem Bsp. was ich mit dem jetzigen Code bekomme
    Code:
    -------------------------------------------------------
    |            | Nr. 1      | Nr. 2      | Nr. 3      |
    -------------------------------------------------------
    | Schütze 1  | Ergebnis 1 | Ergebnis 2 | Ergebnis 3 |
    -------------------------------------------------------
    | Schütze 2  | Ergebnis 1 | Ergebnis 3 |           |
    -------------------------------------------------------
    So sollte es eigentlich aussehen
    Code:
    -------------------------------------------------------
    |            | Nr. 1      | Nr. 2      | Nr. 3      |
    -------------------------------------------------------
    | Schütze 1  | Ergebnis 1 | Ergebnis 2 | Ergebnis 3 |
    -------------------------------------------------------
    | Schütze 2  | Ergebnis 1 |            | Ergebnis 3 |
    -------------------------------------------------------
    Danke

    PHP-Code:
    <?php
    require("config.inc.php");

    $saison=$_POST['saison'];
    $mannschaft=$_POST['mannschaft'];
    $schuetze1=$_POST['schuetze1'];
    $schuetze2=$_POST['schuetze2'];
    $schuetze3=$_POST['schuetze3'];
    $schuetze4=$_POST['schuetze4'];
    ?>

    <table border="0" cellspacing="1" cellpadding="2" class="content" align="center">
    <tr>

    <?php
    $db 
    mysql_connect($host$user$password) or die(mysql_error());

    $dbanfrage"Select DISTINCT RWK
                FROM 
    $tabelle_ergebnis
                WHERE Mannschaft='
    $mannschaft' AND Saison='$saison
                AND (Name='
    $schuetze1' OR Name='$schuetze2
                OR Name='
    $schuetze3' OR Name='$schuetze4')";
    $result mysql_db_query($dbname$dbanfrage$db) or die(mysql_error());
    $anzahlmysql_num_rows ($result);
    for(
    $i=1$i<=$anzahl$i++)
    {
    echo 
    "<td class=\"top\" align=\"center\">Nr. $i</td>";
    }
    echo 
    "</tr>";


    ############# Zellen Schuetze 1 ###################
    if ( isset($_POST['schuetze1']) && $_POST['schuetze1'] != "0"  ) {
    $dbanfrage"Select ID,Mannschaft,Saison,RWK,Name,Ergebnis
                 From 
    $tabelle_ergebnis
                 WHERE Mannschaft='
    $mannschaft' AND Saison='$saison' AND Name='$schuetze1'";
    $result mysql_db_query($dbname$dbanfrage$db) or die(mysql_error());

    echo 
    "<tr><td class=\"right\"><b>$schuetze1</b></td>";
    while ( 
    $ergebnismysql_fetch_array ($result)) {
       echo 
    "<td align=\"center\" class=\"right\">";
       echo 
    $ergebnis['Ergebnis'];
       echo 
    "</b></td>";
    }
    echo 
    "<tr>";
    }

    .......
    Zellen Schuetze 2
    usw
    .
    .......

    echo 
    "</table>";
    Gruß
    Heart

  • #2
    ansatz, du musst gucken, welche wettkämpfe es gibt, und dann überprüfen ob der schütze teilgenommen hat. wenn nicht, dann machst du halt ein &nbsp; in die zelle.

    Kommentar


    • #3
      foreach?!
      The Human Mirror - Mein Blog!
      www.sonicsense.de - The future of music!

      Kommentar


      • #4
        tobiaz meint wohl
        Code:
        &amp;nbsp;
        verwenden, falls kein inhalt in der zelle.

        wobei, darum geht's ja auch nicht, wa...

        Kommentar


        • #5
          genau das meine ich.

          Kommentar


          • #6
            Könnt Ihr mir bitte noch etwas deutlicher unter die Arme greifen
            ansatz, du musst gucken, welche wettkämpfe es gibt,....
            Die Wettkämpfe habe ich jetzt in einem array..... aber
            ... dann überprüfen ob der schütze teilgenommen hat.
            ...an der Überprüfung, ob schuetzeX an allen im array befindlichen Wettkämpfe teilgenomman hat, da hapert es noch

            Wie mach ich das?

            DANKE
            Gruß
            Heart

            Kommentar


            • #7
              Original geschrieben von Heart
              Wie mach ich das?
              z.B.:
              PHP-Code:
              prüfe $ergebnis['Ergebnis']; {
              wenn $ergebnis['Ergebnis']; nichts enthält 
                  
              &amp;nbspausgeben
              sonst
                 $ergebnis
              ['Ergebnis']; ausgeben

              Kommentar


              • #8
                Ich hab das jetzt mal folgenderweise (versucht) zu lösen

                $anzahl ist die INSGESAMT VORHANDENE WETTKAMPFSRUNDEN-ANZAHL (und passt!)
                $vorhandene_rwks ist ein array mit ALLEN VORH. WETTKAMPFRUNDEN-NUMMERN drin (und passt!)
                $rwks ist ein array, welches NUR DIE VORH. WETTKAMPFRUNDEN des auszugegebendem Schuetzen enthält (und passt!)
                PHP-Code:
                <?php
                for($i=0$i<$anzahl$i++) {
                echo 
                "<td align=\"center\" class=\"right\">";
                    if (
                $vorhandene_rwks[$i] == $rwks[$i]) {
                    echo 
                "$ergebnis2[$i]";
                    } else {
                    echo 
                "&nbsp;";
                    }
                echo 
                "</td>";
                }
                Aber hier wird nur das erste Ergebnis ausgegeben, zweite td-zelle greift das else-echo und bei der dritten auch.
                Eigentlich logisch, weil beim 2. Durchlauf der for-Schleife 2 == 3 gegenüber steht und beim 3. Durchlauf 3 == *nix*

                Jetzt fehlt es doch nur noch die if-Anweisung richtig zu setzen oder? Aber wie?
                Gruß
                Heart

                Kommentar


                • #9
                  na hör mal, ist das logisch, was du machst? du gibst $ergebnis2[$i] aus, prüfst aber ($vorhandene_rwks[$i] == $rwks[$i])

                  btw: was soll denn die umklammernden " bei echo "$ergebnis2[$i]"; bewirken? Bitte Grundlagen richtig lernen.

                  Kommentar

                  Lädt...
                  X