brauche hilfe beim sortieren einer Tabelle

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

  • brauche hilfe beim sortieren einer Tabelle

    so, ich bin absoluter php anfänger und hab ein prob.
    Ich hab folgende seite gemacht bzw. übernommen und abgeändert:

    Code:
    <html>
    <title>Kinder der Sonne - Member</title>
    <body text="#000000" bgcolor="#EFEFEF" leftmargin="0" rightmargin="10" topmargin="0" bottommargin="0">
    <?
    $url = 'http://black-legion.info/guild_php.php?server=Lothar&guild=Kinder%20der%20Sonne';
    
    $file = file_get_contents('http://black-legion.info/guild_php.php?server=Lothar&guild=Kinder%20der%20Sonne');
    if(!$file) die("Fehler beim Öffnen von $url");
    
    $guild = unserialize(gzuncompress($file));
    // print_r($guild);
    ?>
    <table border="1" width="100%" cellpadding="0" cellspacing="0" valign="middle" bordercolo="#000000">
    <tr>
    <td>Name</td>
    <td>Level</td>
    <td>Rasse</td>
    <td>Klasse</td>
    <td>Geschlecht</td>
    <td>Rang</td>
    <td>Berufe</td>
    <td>Sek. Beruf(e)</td>
    </tr>
    <?
    foreach($guild['character'] as $c)
    {
    print "<tr>";
    print "<td>".$c['name']."</td>";
    print "<td>".$c['level']."</td>";
    print "<td>".$c['race']."</td>";
    print "<td>".$c['class']."</td>";
    print "<td>".$c['************']."</td>";
    
    print "<td>".$c['guild_title']."(".$c['guild_rank'].")</td>";
    $s = $c['skills'];
    
    $berufe = $s['Berufe'];
    echo "<td>";
    // berufe
    if (count($berufe)>0)
     {
     $berufname = array_keys($berufe);
     for($x=0;$x<count($berufe);$x++)
      {
    ?>
    <table cellspacing="0" border="0" width="100%" cellpadding="0">
    <tr>
     <td width="30%">
      <?
       echo $berufname[$x];
      ?>
     </Td>
     <td width="70%">
      <table cellpadding="0" cellspacing="0" border="0">
       <tr>
                             <?
          echo " ( ".$berufe[$berufname[$x]]['value']."/".$berufe[$berufname[$x]]['max']." ) "; ?>
        </td>
       </tr>
      </table>
     </td>
    </tr>
    </table>
    <?
      }
     }
    echo "&nbsp;</b></td>";
    
    
    $fertigkeiten = $s['Sekundäre Fertigkeiten'];
    echo "<td valign=\"middle\">";
    // fertigkeiten
    if (count($fertigkeiten)>0)
     {
     $fertigkeitenname = array_keys($fertigkeiten);
     for($x=0;$x<count($fertigkeiten);$x++)
      {
       ?>
    <table cellspacing="0" border="0" width="100%" cellpadding="0">
    <tr>
     <td width="30%">
      <?
       echo $fertigkeitenname[$x];
      ?>
     </Td>
     <td width="70%">
      <table cellpadding="0" cellspacing="0" border="0">
       <tr>
        
                        <?
          echo " ( ".$fertigkeiten[$fertigkeitenname[$x]]['value']."/".$fertigkeiten[$fertigkeitenname[$x]]['max']." ) "; ?>
        </td>
       </tr>
      </table>
     </td>
    </tr>
    </table>
    <?   }
     }
    echo "&nbsp;</b></td>";
    echo "</td>";
    
    print "</tr>\n";
    }
    echo "</table>";
    ?>
    </body>
    </html>
    Der Sortiert mit die Tabelle aber irgendwie, nur net so wie ich das haben will....
    Wie bekomm ich die nach Level oder Gildenrang sortiert?
    Wäre nett wenn mir jemand helfen könnte....

    Die seite dazu gibts hier

  • #2
    mal den Suchen Button benutzen ,
    dieses ist eine tägliche Frage, solltest also genügend darüber finden

    Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

    Kommentar


    • #3
      Einfach das Array c unmittelbar vor dem foreach-Aufruf per sort sortieren.
      (-:
      Bookmarks:·Bilder·Jobs·Recht·
      kostenloser Webkataloge-Assistent

      Kommentar


      • #4
        Ich erkenn nix...
        http://www.php-resource.de/forum/sho...threadid=50454

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          PHP-Code:
          <?php
          function level_sort_desc($c1$c2) {
            if (
          $c1['level'] < $c2['level']) return -1
            else if (
          $c1['level'] > $c2['level']) return 1;
            return 
          0;
          }
          function 
          guild_rank_sort_asc($c1$c2) {
            if (
          $c1['guild_rank'] < $c2['guild_rank']) return 1
            else if (
          $c1['guild_rank'] > $c2['guild_rank']) return -1;
            return 
          0;
          }
          function 
          guild_rank_after_level_sort_asc($c1$c2) {
            if (
          $c1['level'] < $c2['level']) return 1
            else if (
          $c1['level'] > $c2['level']) return -1;
            if (
          $c1['guild_rank'] < $c2['guild_rank']) return 1
            else if (
          $c1['guild_rank'] > $c2['guild_rank']) return -1;
            return 
          0;
          }

          $url 'http://black-legion.info/guild_php.php'
                
          .'?server=Lothar&guild=Kinder%20der%20Sonne';
          if(!
          $file file_get_contents($url)) die("Fehler beim Öffnen von $url");
          $guild unserialize(gzuncompress($file));

          uasort($guild['character'], level_sort_desc);
          echo 
          "<pre>"print_r($guild); echo "</pre>";
          uasort($guild['character'], guild_rank_sort_asc);
          echo 
          "<pre>"print_r($guild); echo "</pre>";
          uasort($guild['character'], guild_rank_after_level_sort_asc);
          echo 
          "<pre>"print_r($guild); echo "</pre>";
          ?>
          Man kann in die Vergleichsfunktionen natürlich auch eine Gewichtung mehrerer Kriterien einbauen, zum Beispiel level+guild_rank*10.

          Kommentar


          • #6
            das sortieren geht, allerdings klappt das mit der anzeige noch nicht richtig...
            er zeigt mir im ie arraydaten an...

            kannst du mir noch verraten wo ich den code genau einfügen muss?

            Ich weiß ich bin nervig aber ich hab absolut 0 ahnung von php und würde gerne die seite zum laufen bringen...
            Zuletzt geändert von Acelad; 24.03.2005, 12:33.

            Kommentar


            • #7
              erledigt und danke

              Kommentar

              Lädt...
              X