OOP User classe

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

.NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. 50% van jullie werkzaamheden is maatwerk en de overige 50% is

Bekijk vacature »

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Capelle aan den IJssel zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je

Bekijk vacature »

Senior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Pagina: « vorige 1 2 3 4 volgende »

Mike Smit

Mike Smit

28/12/2010 20:36:39
Quote Anchor link
Ik bedoelde het ook niet negatief en ik dacht ook niet dat jij het negatief bedoelde (wat een zin). Ik bevestigde alleen dat het inderdaad wel eens prettig is als iemand laat weten dat je trots op je werk mag zijn. :P
Gewijzigd op 28/12/2010 20:37:00 door Mike Smit
 
PHP hulp

PHP hulp

27/05/2026 02:41:55
 
The Ultimate

The Ultimate

28/12/2010 20:49:45
Quote Anchor link
@Niels:
Ik heb inmiddels een begin gemaakt in het database script dat jij mij had voorgeschoteld. Voor het overzicht heb ik even de andere databasetypes eruit gesloopt.

Ik merk alleen toch dat ik er niet helemaal uitkom. Ik mis namelijk de database connectie in met name de MySQLResult class. Moet ik deze telkens opnieuw opzetten? Lijkt me niet toch? Hoe kan ik de db_connectie meenemen?

En kun je mij laten weten of het de juiste kant op gaat of dat het toch anders moet?

Hier is wat ik tot nog toe heb:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php

/*****
*
*    Class - Database
*
*    Deze class handelt de communicatie met de MySQL Database af.
*    De methods kunnen verder worden uitgebreid.
*
*    ------------------------------------------------------------
*
*
*
*****/


interface Database
{
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam);
    public function query($query);
}

  
interface DatabaseResult
{
    public function fetch_assoc($sql);
    public function fetch_alles($sql);
    public function aantal_regels($sql);
}

  
class MySQL implements Database
{
    private $db_connection;
  
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam)
    {

        // Verbinding maken met de database
        $this->db_connection = mysql_connect($host,$gebruikersnaam,$wachtwoord,$naam);
    }

  
    public function query($query)
    {

        return mysql_query($query);
    }
}

  
class MySQLResult implements DatabaseResult
{
    private $result;
  
    public function fetch_assoc($sql)
    {

        $db = new MySQL;
        $res = $db->query($sql);
        return $this->result = mysql_fetch_assoc($res);
    }

  
    public function fetch_alles($sql)
    {

        $db = new MySQL;
        $res = $db->query($sql);
        return $this->result = mysql_fetch_array($res);
    }

  
    public function aantal_regels($sql)
    {

        $db = new MySQL;
        $res = $db->query($sql);
        return $this->result = mysql_fetch_row($res);
    }
}

?>


test.php:
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
<?php

#===== Database Settings =====#
define('DB_HOST',                            'db.*****.nl');    // Database host
define('DB_USER',                            '*******');    // Database username
define('DB_PASS',                            '*******');        // Database password
define('DB_DB',                                '*******');    // Database name

include('class/database.class.php');

$db = new MySQL;
$db->connect(DB_HOST,DB_USER,DB_PASS,DB_DB);

?>


En wat mij betreft mag je rustig in dit topic doorgaan of de dependencies. Geen enkel probleem! Ik leer er erg veel van.
Gewijzigd op 28/12/2010 20:51:53 door The Ultimate
 
Niels K

Niels K

28/12/2010 20:53:57
Quote Anchor link
Een vraag, wat heeft de connectie met een resultaat set te maken?

Ik zal eerst alles eens in word uittypen over di(c). Zal in de loop van de week wel een uitleg geven wordt denk ik vandaag niets meer.

Maar goed inhoudelijk op jouw klasse nu:

- Bij de methode connect mis ik fouten afhandeling, plus het selecteren van de database (mysql_select_db)

En zoals ik al zei, resultaat set heeft niets met de query zelf te maken, alleen wat eruit komt.

Daarom klopt fetch_* methodes niet. Die hoeven helemaal niks met de database connectie te doen. Ze moeten alleen het resultaat set tot hun beschikking hebben. Dit moet je oplossen in de methode query.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
public function query( $query )
{

    $result = mysql_query( $query );
    if( !$result ) {
        throw new DatabaseException( ' .... ' );
    }

    return new MySQLResult( $result ); // Hier gaat het dus om
}
Gewijzigd op 28/12/2010 20:59:39 door Niels K
 
The Ultimate

The Ultimate

28/12/2010 20:57:28
Quote Anchor link
Niels Kieviet op 28/12/2010 20:53:57:
Een vraag, wat heeft de connectie met een resultaat set te maken?
Niets? Dat is denk ik het antwoord? Ik moet dus niet de resultaat set ophalen in de MySQLResult class, maar in de MySQL class. Hmmm.... tricky. Ben zo terug. Hoe haal ik nou een resultaat set op zonder db_connectie?

Niels Kieviet op 28/12/2010 20:53:57:
Ik zal eerst alles eens in word uittypen over di(c). Zal in de loop van de week wel een uitleg geven wordt denk ik vandaag niets meer.
We wachten rustig af. ;-)
Gewijzigd op 28/12/2010 20:59:17 door The Ultimate
 
Niels K

Niels K

28/12/2010 21:00:03
Quote Anchor link
Bekijk mijn edit ;-) En probeer het nogmaals
Gewijzigd op 28/12/2010 21:00:33 door Niels K
 
Jasper DS

Jasper DS

28/12/2010 21:03:49
Quote Anchor link
Niels Kieviet op 28/12/2010 20:53:57:
Ik zal eerst alles eens in word uittypen over di(c). Zal in de loop van de week wel een uitleg geven wordt denk ik vandaag niets meer.


vergeet het dan niet op het forum te zetten want ik probeer ook te volgen.. :)
 
Niels K

Niels K

28/12/2010 21:18:36
Quote Anchor link
Haha, is goed komt voor elkaar heb al een klein stuk geschreven.
 
The Ultimate

The Ultimate

28/12/2010 21:19:07
Quote Anchor link
Ok, foutafhandeling toegevoegd en de database-aanroepen eruit gesloopt. Snap alleen niet goed hoe ik nu een resultaat weer kan geven (echoen) in test.php
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php

/*****
*
*    Class - Database
*
*    Deze class handelt de communicatie met de MySQL Database af.
*    De methods kunnen verder worden uitgebreid.
*
*    ------------------------------------------------------------
*
*****/


interface Database
{
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam);
    public function query($query);
}

  
interface DatabaseResult
{
    public function fetch_assoc();
    public function fetch_alles();
    public function aantal_regels();
}

  
class MySQL implements Database
{
    private $db_connection;
  
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam)
    {

        // Verbinding maken met de database
        $result = mysql_connect($host,$gebruikersnaam,$wachtwoord);
        if(!$result) {
            echo 'Er is een fout opgetreden tijdens het verbinden met de database: '.mysql_error();
        }
else {
            // Selecteer database
            $result = mysql_select_db($naam);
            if(!$result) {
                echo 'Er is een fout opgetreden tijdens het selecteren van de database: '.mysql_error();
            }
        }
    }

    
    public function query($query)
    {

        $result = mysql_query($query);
        if(!$result) {
            throw new DatabaseException( 'Er is een fout opgetreden tijdens het uitvoeren van een databasequery: '.mysql_error());
        }

        return new MySQLResult($result); // Hier gaat het dus om
    }
}

  
class MySQLResult implements DatabaseResult
{
    private $result;
  
    public function fetch_assoc()
    {

        $this->result = mysql_fetch_assoc($result);
    }

  
    public function fetch_alles()
    {

        $this->result = mysql_fetch_array($result);
    }

  
    public function aantal_regels()
    {

        $this->result = mysql_fetch_row($result);
    }
}

?>
Gewijzigd op 28/12/2010 21:28:37 door The Ultimate
 
Niels K

Niels K

28/12/2010 21:37:36
Quote Anchor link
Je result klasse is nog niet goed. Hij moet nog een constructor hebben voor het opvangen van het resultaat van de query.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public function __construct( $result )
{

    $this->result = $result;
}

?>


En je resultaat methodes moet het resultaat van de query niet aanpassen, nee ze moeten alleen met informatie retourneren.

dus fetch_assoc wordt bijvoorbeeld zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
public function fetch_assoc( )
{

    return mysql_fetch_assoc( $this->resultaat );
}

?>


Snap je?

Je connectie methode kan nog beter:

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

public function connect( $host, $gebruikersnaam, $wachtwoord, $naam )
{

        // Verbinding maken met de database
        if(!( $this->db_connection = mysql_connect( $host,$gebruikersnaam,$wachtwoord ) ) ) {
            throw new DatabaseException( 'Er is een fout opgetreden tijdens het verbinden met de database: '.mysql_error( ) );

    // Selecteer database
        if( !mysql_select_db( $naam ) ) {
                throw new DatabaseException( 'Er is een fout opgetreden tijdens het selecteren van de database: '.mysql_error( ) );
            }
        }
    }

?>


Het gebruik is heel simpel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// Insert query
$query = "INSERT INTO tabel ( 1, 2, 3, 4, 5 ) VALUES ( enz ) ";
$this->database->query($query);

// Select query
$query = "SELECT enz....";
$elementen = $this->database->query( $query )->fetch_alles( );
foreach( $elementen as $element ) {
    // rest van je code
}
Gewijzigd op 28/12/2010 21:40:09 door Niels K
 
The Ultimate

The Ultimate

28/12/2010 21:55:42
Quote Anchor link
Ok, dit is het script tot nog toe. Krijg nu wel een error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /public/sites/www.******.nl/class/database.class.php on line 68
Warning: Invalid argument supplied for foreach() in /public/sites/www.*******.nl/test.php on line 24

Dit is een error die volgens mij wordt veroorzaakt door een lege resultset. Kan dat kloppen? De database + velden kloppen en er staan ook gegevens in de db.

test.php
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
<?php

#===== Database Settings =====#
define('DB_HOST',                            'db.******.nl');    // Database host
define('DB_USER',                            '******');    // Database username
define('DB_PASS',                            '******');        // Database password
define('DB_DB',                                '******');    // Database name

include('class/database.class.php');

// Creeer object database
$db = new MySQL;

// Maak connectie met en selecteer de database
$db->connect(DB_HOST,DB_USER,DB_PASS,DB_DB);

// Insert query
//$query = "INSERT INTO tabel ( 1, 2, 3, 4, 5 ) VALUES ( enz ) ";
//$this->database->query($query);

// Select query

$sql = "SELECT email FROM user";
$elementen = $db->query($sql)->fetch_alles();
foreach($elementen as $element){
    // rest van je code
    echo $element;
}

?>


database.class.php:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php

/*****
*
*    Class - Database
*
*    Deze class handelt de communicatie met de MySQL Database af.
*    De methods kunnen verder worden uitgebreid.
*
*    ------------------------------------------------------------
*
*****/


interface Database
{
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam);
    public function query($query);
}

  
interface DatabaseResult
{
    public function fetch_assoc();
    public function fetch_alles();
    public function aantal_regels();
}

  
class MySQL implements Database
{
    private $db_connection;
  
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam)
    {

        // Verbinding maken met de database
        if(!($this->db_connection = mysql_connect($host, $gebruikersnaam, $wachtwoord))) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het verbinden met de database: '.mysql_error());
        }

        // Selecteer database
        if(!mysql_select_db($naam)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het selecteren van de database: '.mysql_error());
        }
    }


    public function query($query)
    {

        if(!mysql_query($query)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het uitvoeren van een databasequery: '.mysql_error());
        }

        return new MySQLResult($result);
    }
}

  
class MySQLResult implements DatabaseResult
{
    private $result;

    public function __construct($result)
    {

        $this->result = $result;
    }


    public function fetch_assoc()
    {

        return mysql_fetch_assoc($this->result);
    }

  
    public function fetch_alles()
    {

        return mysql_fetch_array($this->result);
    }

  
    public function aantal_regels()
    {

        return mysql_fetch_row($this->result);
    }
}

?>
Gewijzigd op 28/12/2010 21:56:37 door The Ultimate
 
Niels K

Niels K

28/12/2010 22:03:04
Quote Anchor link
Maak daar dit eens van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

public function fetch_alles( )
{

    $result = array( );
    while( $row = $this->fetch_assoc( ) ) {
        $result[] = $row;
    }

    return $result;
}

?>


aantal_regels klopt overigens ook niet hoor ;) Kan je gewoon gebruik maken van mysql_num_rows
Gewijzigd op 28/12/2010 22:04:01 door Niels K
 
The Ultimate

The Ultimate

28/12/2010 22:08:15
Quote Anchor link
Dan krijg ik deze error:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /public/sites/www.****.nl/class/database.class.php on line 63

Wat nogal raar is want regel 63 is in de method fetch_assoc die helemaal niet aangeroepen wordt. We roepen fetch_alles() aan...Ik zie dat je daarin fetch_assoc aanroept. Oeps. Wel wazig die error...
Gewijzigd op 28/12/2010 22:09:49 door The Ultimate
 
Niels K

Niels K

28/12/2010 22:11:01
Quote Anchor link
Ja maar fetch_assoc wordt aangeroepen in de while ;)

ik zie hem overigens ;) hij zit in de methode query. Je controleert wel of de query is gelukt, en je maakt een nieuwe instantie van MySQLResult maar je geeft geen resultaat mee als param. Krijg je daar geen errors over?
 
The Ultimate

The Ultimate

28/12/2010 22:16:16
Quote Anchor link
Thanks, het moet natuurlijk dit zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
    public function query($query)
    {

        if(!mysql_query($query)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het uitvoeren van een databasequery: '.mysql_error());
        }
else {
            $result = mysql_query($query);
        }
        
        return new MySQLResult($result);
    }

?>

Kreeg daar overigens geen errors over.

Nu lekker naar bedje toe. Morgenochtend ga ik weer vroeg verder met de authentication class zoals jij mij die uitlegde. Bedankt voor de hulp alvast voor zover.

Voor de geïnteresseerden volgt hier het volledige script:

database.class.php:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php

/*****
*
*    Class - Database
*
*    Deze class handelt de communicatie met de MySQL Database af.
*    De methods kunnen verder worden uitgebreid.
*
*    ------------------------------------------------------------
*
*****/


interface Database
{
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam);
    public function query($query);
}

  
interface DatabaseResult
{
    public function fetch_assoc();
    public function fetch_alles();
    public function aantal_regels();
}

  
class MySQL implements Database
{
    private $db_connection;
  
    public function connect($host, $gebruikersnaam, $wachtwoord, $naam)
    {

        // Verbinding maken met de database
        if(!($this->db_connection = mysql_connect($host, $gebruikersnaam, $wachtwoord))) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het verbinden met de database: '.mysql_error());
        }

        // Selecteer database
        if(!mysql_select_db($naam)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het selecteren van de database: '.mysql_error());
        }
    }


    public function query($query)
    {

        if(!mysql_query($query)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het uitvoeren van een databasequery: '.mysql_error());
        }
else {
            $result = mysql_query($query);
        }
        
        return new MySQLResult($result);
    }
}

  
class MySQLResult implements DatabaseResult
{
    private $result;

    public function __construct($result)
    {

        $this->result = $result;
    }


    public function fetch_assoc()
    {

        return mysql_fetch_assoc($this->result);
    }

  
    public function fetch_alles()
    {

        return mysql_fetch_array($this->result);
    }

  
    public function aantal_regels()
    {

        return mysql_fetch_row($this->result);
    }
}

?>


test.php:
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
<?php

#===== Database Settings =====#
define('DB_HOST',                            'db.*****.nl');    // Database host
define('DB_USER',                            '.*****.');    // Database username
define('DB_PASS',                            '.*****.');        // Database password
define('DB_DB',                                '.*****.');    // Database name

include('class/database.class.php');

// Creeer object database
$db = new MySQL;

// Maak connectie met en selecteer de database
$db->connect(DB_HOST,DB_USER,DB_PASS,DB_DB);

// Insert query
$query = "INSERT INTO user (email) VALUES ('[email protected]')";
$db->query($query);

// Select query
$sql = "SELECT email FROM user";
$elementen = $db->query($sql)->fetch_alles();
foreach($elementen as $element){
    // rest van je code
    echo $element;
}

?>
Gewijzigd op 28/12/2010 22:19:30 door The Ultimate
 
Mike Smit

Mike Smit

28/12/2010 22:18:12
Quote Anchor link
Serieus op PHPhulp moet een mogelijkheid komen om direct naar de laatste reactie te gaan. Ongelofelijk ik probeer dit topic te volgen maar moet elke keer helemaal naar de footer van de pagina toe.
 
Niels K

Niels K

28/12/2010 22:18:12
Quote Anchor link
Kan ja maar dit is natuurlijk mooier en korter want nu voer je twee keer de query uit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    public function query($query)
    {

        if(!$result = mysql_query($query)) {
            throw new DatabaseException('Er is een fout opgetreden tijdens het uitvoeren van een databasequery: '.mysql_error());  
        return new MySQLResult($result);
    }


?>


Quote:
Serieus op PHPhulp moet een mogelijkheid komen om direct naar de laatste reactie te gaan. Ongelofelijk ik probeer dit topic te volgen maar moet elke keer helemaal naar de footer van de pagina toe.

Maak er een topic over?
Gewijzigd op 28/12/2010 22:19:07 door Niels K
 
Mike Smit

Mike Smit

28/12/2010 22:21:56
Quote Anchor link
Werkt dat denk je?
 
Niels K

Niels K

28/12/2010 22:23:15
Quote Anchor link
Dat zou moeten werken ;) Maar de geruchten gaan rond dat bas niet actief aan phphulp zit. Heb zelf vorige week een mailtje gestuurd dat ik mijn eigen tutorial niet meer kon wijzigen en of hij dat kon openzetten, maar nog steeds geen reactie gehad..
 
The Ultimate

The Ultimate

28/12/2010 22:24:47
Quote Anchor link
@Niels:
Aangepast. Bedankt.

Overigens geeft de query maar 2 resultaten weer, terwijl de database veel voller staat dan dat. Dit zou toch alle e-mailadressen moeten weergeven?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// Select query
$sql = "SELECT email FROM user";
$elementen = $db->query($sql)->fetch_alles();
foreach($elementen as $element){
    // rest van je code
    echo $element;
}

?>
 
Niels K

Niels K

28/12/2010 22:27:51
Quote Anchor link
Oh het zou moeten werken!? Wat is de totale code tot nu toe?
 

Pagina: « vorige 1 2 3 4 volgende »



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.