OOP User classe

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

Bekijk vacature »

Senior Cobol Applicatieontwikkelaar

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving In de applicatie ETM

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

Full stack .NET developer Microsoft 365

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 »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar start jij in een multidisciplinair team met 7 ontwikkelaars. Dit team is verdeeld onder Front-end ontwikkelaars en backend developers. De backend developers werken voornamelijk aan desktop applicaties in combinatie met backend systemen. Hier ga jij dus ook mee aan de slag! Hierbij wordt voornamelijk gebruik gemaakt van C# .NET, WPF, UWP, XAML en MVVM. WPF, UWP, .NET Core, Azure Devops en Entity Framework. WPF en UWP worden dan ook voornamelijk gebruikt voor de user interface van de desktop applicatie. Het development team is dan ook erg gedreven m.b.t. het ontwikkelen van vooruitstrevende en innovatieve horeca automatiseringsoplossingen.

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

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

19/03/2024 12:29:47
 
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.