OOP en lussen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Pim Vernooij

Pim Vernooij

17/02/2006 00:56:00
Quote Anchor link
Voldemort:
@Pim Vernooij: Hoe bedoel je ik kan het niet meer bewerken? Ik kan toch gewoon alles in m'n class bewerken, daar kan ik toch ook de opmaak kiezen?
Ik bedoel dat je de data binnen je object dan niet meer kan bewerken... stel je voor dat je een functie hebt die wat data retourneerd, in de vorm van een stuk opgemaakte tekst...

wat nou als je deze data opnieuw wilt gebruiken, in een hele andere context? de oplossing daarvoor is de functie gewoon een array te laten retourneren, en achteraf op te maken :)

"php en opmaak dienen gescheiden te blijven"... of zoiets :-P
Gewijzigd op 17/02/2006 00:57:00 door Pim Vernooij
 
PHP hulp

PHP hulp

20/05/2024 19:52:01
 
Martijn Wieringa

Martijn Wieringa

17/02/2006 09:33:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

    class NewsIndex
    {
        // Constructor
        function NewsIndex()
        {

            // Geen handelingen nodig
        }

        function
getLast($aantal) // Gezien de naam verwacht ik dat je de laatste $aantal nieuwsitems wilt
        {
            $items = array();

            // Je query voor de laatste 10 records (ik ga d'r maar van uit dat die klopt m.b.t. je tabellenstructuur.
            $query = "SELECT n.*, l.gebruikersnaam FROM nieuws n LEFT JOIN leden l ON (n.door = l.id) LIMIT " . $aantal;

            // Ik weet niet wat voor databaseclass je gebruikt, dus ik gebruik maar ff de default functies
            $result = mysql_query($query);

            // Kopieer rijen naar array
            while($items[] = mysql_fetch_array($result, MYSQL_ASSOC));

            // 'wis' resultaat uit geheugen
            mysql_free_result($result);

            // Geef de array terug
            return $items;
        }
    }


    // Maak verbinding met de database
    mysql_connect("localhost", "username", "password") or die("Kan geen verbinding maken: " . mysql_error());
    mysql_select_db("databasename");

    // Maak een nieuw object van de class NewsIndex
    $ni = new NewsIndex();

    // Zoek de 20 laatste nieuwsitems op
    $items = $ni->getLast(20);

    // Geef ze alle 20 weer op 't scherm
    for($i = 0; $i < sizeof($items); $i++)
    {

        // Ik heb maar wat lukraak velden bedacht voor het printen.. maar 'k hoop dat de bedoeling duidelijk is
        print("<p>Het volgende bericht is gepost op " . htmlentities($items["datum"]) . " om " . htmlentities($items["tijd"]) . " door " . htmlentities($items["gebruikersnaam"]) . "<br /><br />" . htmlentities($items["omschrijving"]) . "</p>");
    }


?>
 
Voldemort

Voldemort

17/02/2006 18:07:00
Quote Anchor link
Kan ik in een class functie geen andere reeds gedecladeerde functie aanroepen. Ik heb dus een mysql class en een nieuws class. Ik heb dus een mysql class die ik include en dan met $db = new mysql($host,$username,$pass,$db) doe. Dan ik de class nieuws gebruik ik dan:

$db->query("SELECT * FRPM table");

Alleen krijg ik dan dit, exact op die lijn:

Fatal error: Call to a member function on a non-object in [...] on line [zie boven]

Hoe komt dat? Wat doe ik eraan?
 
Mitch X

Mitch X

17/02/2006 19:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
class JouwClass
{
    var
$databaseObject;
    function
JouwClass( )
    {

        $this->databaseObject = new mysql( '', '', '', '' );
    }
    
    function
JouwFunctie( )
    {

        $this->databaseObject->query( 'SELECT * FROM table' );
    }
}

?>

Zo los je dat op :)
 
Voldemort

Voldemort

17/02/2006 19:23:00
Quote Anchor link
Kan ik niet die $db blijven gebruiken? Ik heb die class namelijk al eens met new gedaan in de config. En zo is het erg onhandig, dan moet dat in elke class :s.
 
Voldemort

Voldemort

18/02/2006 18:14:00
Quote Anchor link
De error is eruit door global $db; te gebruiken bij m'n functie.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.