brauche hilfe beim sortieren einer Tabelle

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

      Comment


      • #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

        Comment


        • #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.

          Comment


          • #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...
            Last edited by Acelad; 24-03-2005, 11:33.

            Comment


            • #7
              erledigt und danke

              Comment

              Working...
              X