Sortieren von Anwesenheitsliste

Dieses Thema Sortieren von Anwesenheitsliste im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von edgar113, 20. Nov. 2005.

Thema: Sortieren von Anwesenheitsliste Hallo ich habe mir eine Mysql-Datenbank mit einer Anwesenheitsliste angelegt. Nun möchte ich diese Anwesenheitsliste...

  1. Hallo
    ich habe mir eine Mysql-Datenbank mit einer Anwesenheitsliste angelegt.
    Nun möchte ich diese Anwesenheitsliste nach der anzahl der Anwesenheiten sortieren.
    Wie kann ich dieses machen.
    Hier ein Link zur HP.
    http://www.mgv-imhausen.de/admin/stats.php


    Hier der Skript

    Code:
    <?php
    include(config.php);
    include(connect.php);
    $year_today = date(Y);
    $year_selected = $_POST['year'];
    $cat = $_POST['cat'];
    $anzahl = 0;
    ?>
    
    <html>
    <head>
    <title>- Statistik <? echo $year_selected ?> </title>
    </head>
    <body vlink=#666666 alink=#666666 link=#666666>
    <basefont face=Tahoma,Helvetica size=2>
    <center><b>- Statistik <? echo $year_selected ?> -</b><br><br>
    <a href = index.php><- zurück</a><br><br>
    
    <form method='post' action='stats.php'>
    Jahr <select name='year'>
    <option name='year' value='<? echo $year_today; ?>' selected><? echo $year_today; ?></option>
    <option name='year' value='2004'>2004</option>
    <option name='year' value='2006'>2006</option>
    <option name='year' value='2007'>2007</option>
    </select><br>
    
    Kategorie <select name='cat'>
    <option name='cat' value='alle'>-alle-</option>
    <option name='cat' value='1'>Proben</option>
    <option name='cat' value='2'>Auftritte</option>
    <option name='cat' value='3'>sonstiges Termine</option>
    <option name='cat' value='4'>Vorstand Sitzungen</option>
    <option name='cat' value='5'>Termine von anderen Vereinen</option>
    </select><br>
    
    <input type=submit name='button' value='anzeigen' id='button'>
    </form><br>
    
    <?php
    //------------------------------------------------------------bei seitenaufruf----------------------------------------------------------------
    if ($year_selected == 0)
    {
    $counter = 0;
    $read_appointments = mysql_query(SELECT * FROM koc1_appointments WHERE bearbeitet =->1');
    
    while ($data = mysql_fetch_array($read_appointments))
    {
    $date = explode(-, $data[startdate]);
    $jahr=$date[0];
    
    if ($jahr == $year_today)
    {
    $counter++;
    }
    
    }
    
    echo <b>$counter</b> Termine im Jahr <b>$year_today</b> bereits vorüber.<br>;
    ?>
    
    <table border=1>
    <tr>
    <td bgcolor='#F0F0F0'>
    <b><font face='Tahoma,Helvetica' size='2'><center>Name</b>
    </td>
    <td bgcolor='#F0F0F0'>
    <b><font face='Tahoma,Helvetica' size='2'><center>anwesend</b>
    </td>
    </tr>
    
    
    <?php
    $read_user = mysql_query (SELECT name, id FROM mgv_anwesenheit ORDER BY name ASC);
    while ($data = mysql_fetch_array($read_user))
    {
    echo 
    <tr>
    <td>
    <font face='Tahoma,Helvetica' size='2'>$data[name]
    </td>;
    
    $read_index = mysql_query (SELECT * FROM mgv_index WHERE user_id='$data[id]' && jahr =->$year_today');
    $anzahl = mysql_num_rows($read_index);
    
    if ($anzahl == 0)
    {
    echo <td><font face='Tahoma,Helvetica' size='2' color='red'>0</td>;
    }
    else
    {
    $percent = round(100 / $counter * $anzahl, 0);
    echo <td><font face='Tahoma,Helvetica' size='2'><b>$anzahl</b>
    <img src='.\images\balken1.jpg' width='$percent' height='5' alt='Balken'>
    <font face='Tahoma,Helvetica' size='1'>($percent%)</td>;
    }
    }
    }
    //---------------------------------------------------------------nur wenn jahr und kategorie ausgewählt---------------------------------------
    else
    {
    $counter = 0;
    if ($cat == alle)
    {
    $read_appointments = mysql_query(SELECT * FROM koc1_appointments WHERE bearbeitet =->1');
    }
    else
    {
    $read_appointments = mysql_query(SELECT * FROM koc1_appointments WHERE bearbeitet =->1' && category =->$cat');
    }
    
    while ($data = mysql_fetch_array($read_appointments))
    {
    $date = explode(-, $data[startdate]);
    $jahr=$date[0];
    
    if ($jahr == $year_selected)
    {
    $counter++;
    }
    }
    $usi_cat = $cat;
    if ($date[0] == 0)
    {
    echo keine Termine;
    }
    else
    {
    
    if ($cat == 1)
    {
    $cat =->Probe(n)';
    }
    if ($cat == 2)
    {
    $cat =->Auftritt(e)';
    }
    if ($cat == 3)
    {
    $cat =->sonstige(r) Termin(e)';
    }
    if ($cat == 4)
    {
    $cat =->Vorstand Sitzunge(n)';
    }
    if ($cat == 5)
    {
    $cat =->Termin(e) von anderen Vereinen';
    }
    if ($cat == alle)
    {
    $cat =->Termine';
    }
    
    echo <b>$counter</b> $cat im Jahr <b>$year_selected</b> bereits vorüber.<br>;
    ?>
    
    <table border=1>
    <tr>
    <td bgcolor='#F0F0F0'>
    <b><font face='Tahoma,Helvetica' size='2'><center>Name</b>
    </td>
    <td bgcolor='#F0F0F0'>
    <b><font face='Tahoma,Helvetica' size='2'><center>anwesend</b>
    </td>
    </tr>
    
    
    <?php
    $read_user = mysql_query (SELECT name, id FROM mgv_anwesenheit ORDER BY name ASC);
    while ($data = mysql_fetch_array($read_user))
    {
    echo 
    <tr>
    <td>
    <font face='Tahoma,Helvetica' size='2'>$data[name]
    </td>;
    if ($usi_cat == alle)
    {
    $read_index = mysql_query (SELECT * FROM mgv_index,koc1_appointments WHERE mgv_index.appointmentid=koc1_appointments.appointmentid and user_id='$data[id]' && jahr =->$year_selected');
    }
    else
    {
    $read_index = mysql_query (SELECT * FROM mgv_index,koc1_appointments WHERE mgv_index.appointmentid=koc1_appointments.appointmentid and user_id='$data[id]' && jahr =->$year_selected' and category ='$usi_cat');
    }
    $anzahl = mysql_num_rows($read_index);
    
    if ($anzahl == 0)
    {
    echo <td><font face='Tahoma,Helvetica' size='2' color='red'>0</td>;
    }
    else
    {
    $percent = round(100 / $counter * $anzahl, 0);
    echo <td><font face='Tahoma,Helvetica' size='2'><b>$anzahl</b>
    <img src='.\images\balken1.jpg' width='$percent' height='5' alt='Balken'>
    <font face='Tahoma,Helvetica' size='1'>($percent%)</td>;
    }
    }
    }
    }
    
    echo </table>;
    include (footer.html)
    ?>
    * Code-Tags eingefügt *
     
  2. Hi

    Müsste in etwa so aussehen deine neue SQL Abfrage:
    Code:
    SELECT name, id, count(*) AS anzahl FROM mgv_anwesenheit LEFT JOIN mgv_index ON mgv_anwesenheit.id = mgv_index.user_id WHERE mgv_index.jahr =->$year_today' GROUP BY mgv_anwesenheit.id ORDER BY anzahl DESC
    
    Gruß, Michael
     
  3. Als ich muß echt sagen Spitze.
    Hier wird einem prima geholfen.
    Es Hat funktioniert.
    Danke an alle.
    Gruß
     
  4. Oh hab da noch was.
    Wenn ich jetzt ein Jahr oder eine Kategorie auswähle ist die sortierung nicht richtig. Was müsste ich im code ändern.
    Beim Seite aufrufen
    $read_user = mysql_query (SELECT name, id, count(*) AS anzahl FROM mgv_anwesenheit LEFT JOIN mgv_index ON mgv_anwesenheit.id = mgv_index.user_id WHERE mgv_index.jahr =->$year_today' GROUP BY mgv_anwesenheit.id ORDER BY anzahl DESC);

    Nach auswahl der Kategorie ?????????????????????????
    $read_user = mysql_query (SELECT name, id, count(*) AS anzahl FROM mgv_anwesenheit LEFT JOIN mgv_index ON mgv_anwesenheit.id = mgv_index.user_id WHERE mgv_index.jahr =->$year_today' GROUP BY mgv_anwesenheit.id ORDER BY anzahl DESC);

    ??????????????????
     
  5. Hi

    Code:
    $read_user = mysql_query (SELECT name, id, count(*) AS anzahl FROM mgv_anwesenheit LEFT JOIN mgv_index ON mgv_anwesenheit.id = mgv_index.user_id LEFT JOIN koc1_appointments ON mgv_index.appointmentid=koc1_appointments.appointmentid WHERE mgv_index.jahr =->$year_today' AND category ='$usi_cat' GROUP BY mgv_anwesenheit.id ORDER BY anzahl DESC);
    
    Gruß, Michael
     
  6. Geht Prima aber:
    Wenn ich die Statistik aufrufe werden die Daten alle direkt angzeigt.
    Wähle ich Proben geht es auch.
    Wähle ich alle fehlen die Daten.

    http://www.mgv-imhausen.de/admin/stats.php

    Danke für die Gute Arbeit
     
  7. Hi

    Das liegt am komischen Aufbau von deinem PHP Skript :)
    Das letztgenannte SQL Statement darf natürlich nur ausgeführt werden wenn eine kategorie != alle gewählt ist, ansonsten muss das von darüber ausgeführt werden.

    Gruß, Michael
     
Die Seite wird geladen...

Sortieren von Anwesenheitsliste - Ähnliche Themen

Forum Datum
Dateien sortieren Windows XP Forum 18. März 2013
Dateien sortieren ? Windows 7 Forum 27. Okt. 2011
Datein in einem Ordner selber sortieren Windows XP Forum 20. Jan. 2011
DVD-Liste automatisch sortieren lassen Microsoft Office Suite 16. Apr. 2013
Automatisches Sortieren bei Eingabe Microsoft Office Suite 16. Jan. 2012