Avatar billede martin_g Nybegynder
04. februar 2005 - 15:24 Der er 1 kommentar

Opdeling af output

Hej,

Først: Jeg er ikke særligt php-stærk, og spørgsmålet kan derfor være meget lettere end jeg tror (det er det nok!). Beklager.

Jeg har et setup, hvor man kan oprette et 'event' i en kalender, og alle brugerne har som default 'ikke svaret' (status=1 i det følgende). Man kan så gå ind og melde sig til (status =3) eller melde fra (status =2). Derefter kan man så gå ind og se antallet af tilmeldte, afmeldte og ikke svarede. Dette kommer ud af nedenstående kode.

Mit spørgsmål: På nuværende tidsunkt bliver alle brugerne smidt ud i et dump, sorteret efter status, men jeg ville meget gerne dele det op, så jeg fik
Tilmeldt: [antal]
og så dump af navne og begrundelse, samt tid (som det er nu)

og på tilsvarende måde frameldt og ikke svaret - altså helst i 3 forskellige dump (som jeg så kan lægge ind i noget layout).

Men HVOR skal jeg sætte noget 'where' sætning ind, og hvor meget af koden skal kopieres ?

På forhånd tak - jeg giver den 100 point, da I jo lige skal læse lidt kode igennem.

----------------------------------------------------------------
<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
require_once ("db_connect.php");

$event_id = $_REQUEST["event_id"];

if(!$event_id){    echo "Der er opstået en fejl. Manglende event_id. Prøv igen fra forsiden!";    return; }

$db = db_connection();
    $q = "SELECT * from events WHERE event_id = '$event_id'";
    $result = query($q);
    $error = mysql_error($db);

    if($error){
        $strError = "<br> noget gik galt! Fejl: ".$error;
        return $strError;
    }else{
       
        $num_results = mysql_numrows( $result );     
        if ($num_results > 0) {
        ?>
       
        <html>
        <body>
       
        Oplysninger om event <br><br>
               
        <?
       
            for ($i=0; $i <$num_results; $i++)
            {
                    $row = mysql_fetch_array($result);
                    // Vender datoen om til danske forhold.
                    $pieces = explode(" ", $row["dato"]);
                    $pieces = explode("-", $pieces[0]);
                    $array = array($pieces[2],$pieces[1], $pieces[0]);
                    $thedate = implode(".", $array);
                    ?>   
                               
                        <br><br>Dato: <? echo $thedate; ?>
                        <br>Type: <? echo $row["type"]; ?>
                        <br>Sted: <? echo $row["sted"]; ?>
                        <br>Tid: <? echo $row["tid"]; ?>
                        <br>Info: <? echo $row["info"]; ?>
                        <br>Ansvarlig: <? echo $row["brugernavn"]; ?>
                        <br>Hold: <? echo $row["hold_id"]; ?>
                       
                    <?
                   
                    // Her kommer opslaget i event_respons tabellen for at se spilleres status i forhold til den pågældende event. Men kun hvis brugeren er logget på ellers vises ingenting.
                    if ($_SESSION['userlevel'] == $row["hold_id"]) {
                        $username = $_SESSION['username'];
                        if ($username) {
                            $event_id = $row["event_id"];
                            $q_event = "SELECT * from event_respons WHERE brugernavn = '$username' AND event_id = '$event_id'";
                            $result_event = query($q_event);
                            $error_event = mysql_error($db);

                            if($error_event){ $strError_event = "<br> noget gik galt! Fejl: ".$error; return $strError_event;
                            }else{
                                // Spilleren er logget på og vi kan vise hans/hendes status i forhold til den pågældende event.
                                $row_event = mysql_fetch_array($result_event);
                                echo "Status-variabel: ".$row_event["status"];
                                if ($row_event["status"] == "1") { $current_status = "Ikke svaret"; }
                                else if ($row_event["status"] == "2") { $current_status = "Du er tilmeldt denne event. Note: ".$row_event["begrundelse"]; }                       
                                else if ($row_event["status"] == "3") { $current_status = "Du er afmeldt denne event. Note: ".$row_event["begrundelse"]; }
                                ?>
                                    <? echo $current_status; ?>
                                    <br><a href="insert_event_respons_form_spiller.php?event_id=<? echo $event_id ?>">Tilmeld/Afmeld</a>
                                <?
                               
                            }   
                        }
                    }
                   
                    // Her vises tilmeldinger/afbud etc for den aktuelle event alle spillere.
                    $q_event_status = "SELECT * from event_respons WHERE event_id = '$event_id' ORDER BY status desc";
                    $result_event_status = query($q_event_status);
                    $error_event_status = mysql_error($db);

                    if($error_event_status){ $strError_event_status = "<br> noget gik galt! Fejl: ".$error; return $strError_event_status;
                    }else{
                    $num_results_status = mysql_numrows( $result_event_status );     
                    if ($num_results_status > 0) {
                       
                        $no_answer = 0;
                        $coming = 0;
                        $cancelled = 0;
                       
                        for ($i=0; $i <$num_results_status; $i++) {
                            $row_event_status = mysql_fetch_array($result_event_status);
                           
                                if ($row_event_status["status"] == "1") { $current_status = "Ikke Svaret"; $no_answer++; }
                                else if ($row_event_status["status"] == "2") { $current_status = "Tilmeldt"; $coming++; }                       
                                else if ($row_event_status["status"] == "3") { $current_status = "Afbud"; $cancelled++; }
                           
                            ?>   
                           
                            <br><? echo $row_event_status["brugernavn"]; ?> <? echo $current_status; ?> <? echo $row_event_status["begrundelse"]; ?> <? echo $row_event_status["tid"]; ?>
                           
                            <?           
                       
                    }
                    ?>
                   
                    <br><br>Mangler at svare: <? echo $no_answer; ?> Antal tilmeldt: <? echo $coming; ?> Antal Frameldt: <? echo $cancelled; ?><br>
                   
                    <?
                    }
                    }   
            }
           
        }
        else {
            echo "<br><tr><td class=\"text\">Der er ingen events for den pågældende periode.</td></tr>";
        }
    }


?>

</body>
</html>
Avatar billede martin_g Nybegynder
04. februar 2005 - 15:25 #1
Jeg går ud fra at der kun skal ændres noget efter linjen med

// Her vises tilmeldinger/afbud etc for den aktuelle event alle spillere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Acrelec Danmark

IT-supporter

IT & Co ApS

Systemkonsulent

Netcompany A/S

Test Specialist

Dynamicweb Software A/S

Solution Architect