Scoop van variabelen op een pagina tot in een klasse

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sab Kriksdeegir

Sab Kriksdeegir

11/11/2006 17:16:00
Quote Anchor link
Na een tutje over OOP te hebben gevolgd heb ik een klasse geschreven om
geposte variabelen aan een tabel toe te voegen. Allemaal goed en wel, totdat ik mijn script wil testen. Hieronder vindt je de code van mijn "project"
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
<?php
require("requires/header.req");
?>

<?php
require("classes/test.class");
$project = new SQL_Commands;
if (empty($Add_Page)) {
    echo "<form action=\"#\" method=\"post\"><table><tr><td><input type=\"text\" name=\"titel\"></td></tr><tr><td><textarea name=\"inhoud\" rows=\"25\" cols=\"55\"></textarea></td></tr>";
    echo "<tr><td><input type=\"submit\" name=\"Add_Page\" value=\"Voe pagina toe\"></td></tr></table>";
    echo "</form";
}
else{
    $Test = $project->Add("tbl_content");
    echo $Test;
}

require("requires/footer.req");
?>


Test.class
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
<?php
class SQL_Commands {
    function
SQL_Commands() {
        if (!$DB_link) {
              die("Connectie naar $db mislukt: " . mysql_error() );
        }
    }
    function
Add($table) {
        if (empty($_POST)) {
            $debug .= "Er werd geen data gepost<br>";
            return $debug;
            exit;
        }

            $Insert_List_Fields = $Insert_List_Values =  "(";
            $Elements = count($_POST);
            $Elements_Counter = 0;
            foreach($_POST AS $key => $value) {
                if ($Elements_Counter <> $Elements-1) {
                    $Elements_Counter++;
                    $Insert_List_Fields .= $key;
                    $Insert_List_Values .= "'" . $value . "'";
                if ($Elements_Counter <> ($Elements-1)) {
                    $Insert_List_Fields .= ",";
                    $Insert_List_Values .= ",";
                }

                if ($Elements_Counter+1 == $Elements) {
                    $Insert_List_Fields .= ")";
                    $Insert_List_Values .= ")";
                }
            }
        }

        $qry = "\"Insert into " . $table . " " . $Insert_List_Fields . " VALUES " . $Insert_List_Values . " \"";
        $Add_Complete = mysql_db_query($db,$qry,$DB_link) or die(mysql_error());
        return "True";
        
    }

}


?>


Nu als ik mijn script laat draaien krijg ik de volgende error :
Connectie naar mislukt

Mijn connectievariabelen worden dus niet aan mijn klasse gevoegd,
weet iemand hoe ik dit kan verhelpen zonder dat ik een nieuwe connectie moet aanmaken in de klasse zelf ?
 
PHP hulp

PHP hulp

22/11/2024 06:21:27
 
Rens nvt

Rens nvt

11/11/2006 17:22:00
Quote Anchor link
eeehrm...
zoals altijd met functies moet je wel aangeven welke globale variabelen je wilt gebruiken... :-)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    function SQL_Commands() {
        global $DB_link, $db;
        if (!$DB_link) {
              die("Connectie naar $db mislukt: " . mysql_error() );
        }
    }

?>
 
Sab Kriksdeegir

Sab Kriksdeegir

11/11/2006 17:23:00
Quote Anchor link
owkkk :)
Thx, dit blijkt dus een newb vraagje te zijn :)
 
Rens nvt

Rens nvt

11/11/2006 17:26:00
Quote Anchor link
Tommy, beter gevraagd dan niet beantwoord toch? :-)
 
Sab Kriksdeegir

Sab Kriksdeegir

11/11/2006 17:34:00
Quote Anchor link
helemaal gelijk ;)
nog eens bedankt
 
Sab Kriksdeegir

Sab Kriksdeegir

11/11/2006 18:13:00
Quote Anchor link
Hmm nog een vraag, kan je die variabelen niet voor iedere functie in een klasse
globaal maken ?
want als ik ze in de constructor gooi werken ze niet meer in de functie
Add
 



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.