Avatar billede jonas_j Nybegynder
11. oktober 2004 - 08:53 Der er 10 kommentarer og
1 løsning

PHP5 OOP spørgsmål?

Jeg sidder og programmerer i OOP i PHP5. Mit spørgsmål går så på DataObjects(DO). Når jeg skal lave en funktion som skal kunne hente flere "records" i db, hvordan skal jeg så lave den? Skal den laves med arrayes eller hvordan er den smarteste måde at lave det?

NB: I DO foreslår de man bruger en function find. Men den virker ikke. Her er et link til DO->find. http://www.onlamp.com/pub/a/php/2004/08/05/dataobjects.html?page=3
Avatar billede drbean Nybegynder
11. oktober 2004 - 12:48 #1
Du har 2 muligheder... Enten kan du returnere et array, eller også kan du retunere database objeketet og lave en fetch row tilbage i din kode. Det er op til dig
Avatar billede jonas_j Nybegynder
11. oktober 2004 - 13:57 #2
Men er det helt korrekt at bruge arrayes ifølge OOP-regler?
Avatar billede jonas_j Nybegynder
11. oktober 2004 - 14:08 #3
Hvilke data vil jeg få med ved at lave database objeketet?
Avatar billede drbean Nybegynder
11. oktober 2004 - 16:20 #4
Ja du kan sagtens returnere et array, ifølge OOP standarden. Hvis du returnere et database objekt, vil du skulle køre en kommando som fx mysql_fecth_array (tror jeg nok det hedder). Det er jo bare resultatet af din query.
Avatar billede jonas_j Nybegynder
11. oktober 2004 - 16:26 #5
Ja ja... oki har du nogen erfaring med at hente det ud i et array? Kan nemlig ikke rigtig få det til at spille. Kode vedlagt nedenunder!

public function select_all() {
    $sql = "SELECT
        *
        FROM
        lon_firma_sats";

        echo $sql;
        $sql_res = mysql_query($sql);
       
        echo "HER:".count($sql_res);
        // Loop through the rows
        for ($i = 0; $i < count($sql_res); $i++) {
            $row = mysql_fetch_row($sql_res);
        $this->id[$i]            = $row[id];
            $this->navn[$i]            = $row[navn];
        $this->start_dato[$i]        = $row[start_dato];
        $this->slut_dato[$i]        = $row[slut_dato];
        $this->sats[$i]            = $row[sats];
        $this->opret_user_id[$i]    = $row[opret_user_id];
        }
        //$rows = count($sql_res);
    }

Skal have lagt resultaterne inde i dette array?
NB: Jeg tager hjem nu, og kommer først på imorgen idag, hvis du svarer inden! ses
Avatar billede drbean Nybegynder
11. oktober 2004 - 18:27 #6
Jeg ville nok gøre noget i denne her stil:

public function select_all() {
    $sql = "SELECT
        *
        FROM
        lon_firma_sats";

      $sql_res = mysql_query($sql);
        return mysql_fetch_assoc($sql_res);
      }
Avatar billede jonas_j Nybegynder
13. oktober 2004 - 09:41 #7
Hvordan henter jeg så variablerne på en anden side. Først skal der selvfølelig oprettet et objekt. Men hvordan gør jeg ellers?
Avatar billede drbean Nybegynder
13. oktober 2004 - 10:11 #8
Den fungere ligesom en normal funktion.

fx

$aRow = $ob->select_all();

$aRow indeholder nu dit array
Avatar billede jonas_j Nybegynder
14. oktober 2004 - 08:17 #9
Jeg har ikke lige fået testet det af endnu, sty. Min web-server er lige under konstruktion! Men vender tilbage hurtigst mulig
Avatar billede jonas_j Nybegynder
20. oktober 2004 - 12:09 #10
Hmm. Jeg får kun et resultat ud fra mySQL. Altså row 1, ingen andre resultater, selvom det er 5 hits?
Avatar billede jonas_j Nybegynder
25. november 2004 - 08:54 #11
Jeg tror dette spørgsmål er opgivet, derfor erklærer jeg det for uløst!
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