Avatar billede bhn.314 Nybegynder
29. september 2003 - 09:29 Der er 7 kommentarer og
1 løsning

OO og databaser i PHP

Hvis man vil kode OO i PHP og data er gemt i en DB, hvor og hvordan hentes data så op i objektet - bør man definere en metode i objektet der henter data og så kalder "constructoren".

class Organisation
{
    var $organisation_id;
    var $organisation_type;
    var $organisation_name;
   
    function Organisation($organisation_id, $organisation_type, $organisation_name)
    {
        $this->organisation_id=$organisation_id;
        $this->organisation_type=$organisation_type;       
        $this->organisation_name=$organisation_name;       
    }
    function getOrganisation()
    {   
        $organisation_data =
        '
        <p>Organisation: '.$this->ansistersOfOrganisation().'<b>'.$this->organisation_name.'</b></p>
        <table>
            <tr>
                <td></td>
            </tr>
        </table>
        ';
       
        return $organisation_data;
    }
    //Henter selve organisation
    function loadOrganisation($organisation_id)
    {       
        $result = $GLOBALS['connection']->getData("select * from tblOrganisation WHERE organisation_id='".$organisation_id."'");
        $obj =     $GLOBALS['connection']->getRow($result);
        $this->organisation_id=$obj->organisation_id;
        $this->organisation_type=$obj->organisation_type;   
        $this->organisation_name=$obj->organisation_name;
    }

}
Avatar billede anhansen Nybegynder
29. september 2003 - 09:40 #1
Jeg vil foreslå at gøre som du skriver. Det falder mig mest naturligt ind.
Altså, først hentes data om objektet ud fra db, hvorefter objektet bringes tilbage til live... først find data, og så opret objekt.
Avatar billede bhn.314 Nybegynder
29. september 2003 - 09:49 #2
Men det virker ikke helt OO-style.
Avatar billede anhansen Nybegynder
29. september 2003 - 10:00 #3
Hvad mener du... Du er da nødt til at have data først, hvis det er data som skal gives med i constructoren.
En alternativ løsning er at du kun giver f.eks 'id' med i constructoren, og så har en metode på klassen, som kan hente/gemme resten i db'en.
Avatar billede bhn.314 Nybegynder
29. september 2003 - 10:07 #4
Ja, du har nok ret - jeg synes pludselig bare det så så "grimt" ud....
Avatar billede bhn.314 Nybegynder
29. september 2003 - 10:08 #5
Jeg vil bare gerne have DB-kaldet ud fra klassen...
Avatar billede anhansen Nybegynder
29. september 2003 - 10:10 #6
Ja... det kan du også gøre.. du kan bare lave det først.. Og så oprette objektet. Så behøves det ikke ligge i den klasse.
Avatar billede bhn.314 Nybegynder
29. september 2003 - 10:19 #7
Ja, det er dog heller ikke så kønt.... Men tak for hjælpen det er guld værd....
Avatar billede anhansen Nybegynder
29. september 2003 - 10:22 #8
ok.. det var så lidt... Go' arbejdslyst..
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