Avatar billede ralf_l Nybegynder
09. oktober 2013 - 19:09 Der er 2 kommentarer og
1 løsning

MVC problem -> Brugerliste med tilhørende statestik

Min leg med MVC forsætter. Jeg har på nogen af mine sider, lister hvor jeg henter data fra flere database tabeller.
Så det leger jeg med lige nu.

Nu ved jeg ikke hvor meget i har brug for at se, for at forstå hvad jeg laver. Så i må sige til, hvis i mangler oplysninger


Jeg har lavet en test side med en brugerliste, her vil jeg gerne have lavet noget statistik ud for brugeren.

-----------------------------------------------------
Jeg har i min Model følgende funktion:

  public function getUserList(){
             
      $stmt = $this->db->prepare("SELECT userid, username FROM users ORDER BY username");
      $stmt->execute();
      $result = $stmt->get_result();
      $list = $result->fetch_all(MYSQLI_ASSOC);
      $stmt->close();
      return $list;
  }




Jeg har i min controller følgende:

  public function index(){
      $this->view->getUserList = $this->model->getUserList();
  }





Jeg laver så min liste i min viewer:
  <?php
  if (is_array($this->getUserList)){
      foreach($this->getUserList as $user){
  ?>
        <tr>
            <td><?php echo $user['userid']; ?></td>
            <td><?php echo $user['username']; ?></td>
            <td>STATESTIK</td>
        <tr>
  <?php
      }
  }
  ?>

-----------------------------------------------------

Det virker fint.


Nu har jeg også følgende funktion i min model:

  public function userPoint($userid){
      $stmt = $this->db->prepare("SELECT SUM(point) FROM point WHERE point_userid = ?");
      $stmt->bind_param('i', $userid);
      $stmt->execute();
      $result = $stmt->get_result();
        if($row = $results->fetch_array()) {
            $point = new point($row['SUM(point)']);
        } else {
            return NULL;
        }
      stmt->close();
      return $point;
  }


I min viewer har jeg feltet:
<td>STATESTIK</td>
Her skal udtrækket fra overstående funktion stå..

Jeg kan ikke lige lure hvordan det skal gøres.
Avatar billede arne_v Ekspert
10. oktober 2013 - 02:40 #1
<td><?php echo userPoint($user['userid']); ?></td>

vil jeg tro
Avatar billede ralf_l Nybegynder
10. oktober 2013 - 22:04 #2
Hey Arne det var desværre ikke noget der virkede.

Efter flere dage og flere timers forsøg, fandt jeg løsninger som langsomt gav den endelig løsning.

Jeg har lavet en ny klasse kaldet Point i sin egen fil

I min viewer til føjede jeg så $point = new Point.

Og så kaldte jeg $point->userPoint($user['userid']);

Det virkede... Men om det er den rigtige måde at gøre det på, ved jeg så ikke.
Avatar billede ralf_l Nybegynder
18. oktober 2013 - 12:22 #3
Glemte at lukke dette spørgsmål.
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