Vast met edit account class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bastiaan

Bastiaan

22/01/2008 17:46:00
Quote Anchor link
Hallo allemaal,

Ben op dit moment bezig met een edit account class. Waar iemand dus geregistreerd is, een account heeft maar dat ook aan kan passen. Maar nu kom ik er even niet meer uit. Dus hoop dat iemand mij beetje op weg kan helpen en/of suggesties heeft!
Alvast bedankt!! (zal hieronder het script posten)

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php

error_reporting(E_ALL | E_STRICT);

require_once ("index.php");

class ManageAccount
{
        
        private $m_sField;
        private $m_aAccountData;
        private $oForm;
        
    public function __construct($p_sFormName, $p_sFormType, $p_sFormAction)
    {

            $this->oForm = new Form($p_sFormName, $p_sFormType, $p_sFormAction);
    }


    public function getAccountData($p_sTableName, $p_aFieldNames, $p_aPostValues, $p_sWhereField,
        $p_vWhereValue, $p_sAndStatement = "")
    {


        if (!empty($p_sTableName) && !empty($p_aFieldNames) && !empty($p_aPostValues) &&
            !
empty($p_sWhereField) && !empty($p_vWhereValue)) {

            if ((count($p_aPostValues) - 1) == count($p_aFieldNames)) {


                $sQuery = "UPDATE " . mysql_real_escape_string($p_sTableName) . " SET ";

                for ($nCount = 0; $nCount <= (count($p_aPostValues) - 1); $nCount++) {

                    $sQuery .= mysql_real_escape_string($p_aFieldNames[$nCount]) . " = '" .
                        mysql_real_escape_string($p_aPostValues[$nCount]) . "', ";

                }


                $sQuery = substr($sQuery, 0, -2);

                $sQuery .= " WHERE " . mysql_real_escape_string($p_sWhereField) . " = '" .
                    mysql_real_escape_string($p_sWhereValue) . "'";

                if (!empty($p_sAndStatement)) {

                    $sQuery .= $p_sAndStatement;

                }


                mysql_query($sQuery) or die("Database error: " . mysql_error() . "<br />");


                $statusMessage = "De account is bewerkt.";
                                 return $statusMessage;
                                
            }
else {

                $statusMessage = "Het aantal opgegeven waardes van de meegestuurde variabelen en veldnamen kwamen niet overeen.";
                 return $statusMessage;

            }


        }
else {

            $statusMessage = "Onvoldoende informatie meegegeven.";
             return $statusMessage;

        }
    }

    
    private function makeForm(){
        echo 'Username: ';
            $this->m_sField = $this->oForm->makeField("username","text","",$this->m_aAccountData['username']);
            echo '<br />';
            echo 'Password: ';
            $this->m_sField .= $this->oForm->makeField("password","password","",$this->m_aAccountData['password']);
            echo '<br />';
            echo 'E-mail: ';
            $this->m_sField .= $this->oForm->makeField("email","text","",$this->m_aAccountData['email']);
            echo '<br />';
            echo 'Telefoon: ';
            $this->m_sField .= $this->oForm->makeField("telefoon","text","",$this->m_aAccountData['telefoon']);
            echo '<br />';
            $this->m_sField .= $this->oForm->makeField("submit","wijzig","Wijzig");
        }

        
        public function showForm() {
            $this->makeForm();
            return $this->m_sField;
        }
}


$m = new ManageAccount("test", "POST", "");
echo $m->showForm();

?>
 
PHP hulp

PHP hulp

04/12/2024 09:51:07
 
Joren de Wit

Joren de Wit

22/01/2008 17:48:00
Quote Anchor link
Wat is je probleem? Waar loop je vast?

Kortom, stel eens een concrete vraag...
 
Bastiaan

Bastiaan

22/01/2008 17:56:00
Quote Anchor link
Hoe zet ik bijvoorbeeld nu makkelijk mijn gegevens die ik uit de database haal in het formulier? Dus dat je de gegevens in de invoervelden zet van het formulier, zodat je snel en makkelijk kan zien wat je huidige gegevens zijn en dat dan kan veranderen.
 
Joren de Wit

Joren de Wit

22/01/2008 18:02:00
Quote Anchor link
Ik zie nergens een methode waarmee je data uit de database ophaalt en de member $m_aAccountData vult?

Verder is de naam van je methode getAccountData erg ongelukkig gekozen, aangezien er met deze methode geen enkel gegeven opgehaald wordt. Er worden alleen maar UPDATE queries uitgevoerd dus setAccountData of updateAccountData zou logischer zijn.

Als laatste is een die() is een klasse wel het laatste waar je mee wilt werken. Als er iets fout gaat gooi je een exception die je tijdens het uitvoeren weer kunt opvangen...
 
Bastiaan

Bastiaan

23/01/2008 12:33:00
Quote Anchor link
Exception heb ik gedaan. En naam heb ik ook veranderd. Oke, misschien een domme vraag, maar hoe haal ik dat uit database, zet in array en laat het dan in de velden van formulier zien?
 
Joren de Wit

Joren de Wit

23/01/2008 13:06:00
Quote Anchor link
In je makeForm() methode gebruik je de member $m_aAccountData om de waarde van een input veld op te halen. Je zult dus een methode moeten toevoegen die de benodigde gegevens uit de database leest en in die member propt.

Gegevens uit de database halen doe je met een SELECT query. Vervolgens fetch je de resultaten en kun je ze in de betreffende member zetten.
 
Bastiaan

Bastiaan

24/01/2008 00:15:00
Quote Anchor link
Bedankt! Krijg nu alles goed! Alleen het editten van account doet ie nog niet helemaal. Daar ga ik morgen even naar kijken, maar als iemand het ziet of weet dan hoor ik het graag!
 



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.