Avatar billede Slettet bruger
07. august 2006 - 14:20 Der er 6 kommentarer

Class extend problem php5/mysql

Jeg har et lille problem. Jeg skal foretage et databaseudtræk ved hjælp af to class's: 1 for database connection og en for min SQL-query men kan ikke få skidtet til at virke.

Kode:
core.classes.php:

class dbConnect {
    public $conn;

    //Method to connect to our database
    public function __construct($host, $user, $pass, $db) {
        $this->conn = mysqli_connect($host, $user, $pass, $db);
    }
}
class sqlConnect{
    //public $row;
    //Method to select fields or all from our database
    public function selectQuery($table, $id_field, $field, $colum, $where, $callback) {
        if ($where != "") $where = "WHERE $where";
        if ($field == "") $field = "*";
        if ($table == "" || $callback == ""){
        echo "En eller flere parametre mangler i selectQuery.";
        exit();
        }else{
        $result = mysqli_query($this->conn, "SELECT $field FROM $table $where") or die(mysqli_error($this->conn));
        }

        //Lets loop through our rows in our database and then call our function to print the results
        while ($row = mysqli_fetch_array($result)) {
            $callback($row['email'],$row['welcome']);
        }
    }
   
//Function to print out our rows in the database and create a delete/update link
function echoQuery1($value){
    echo "$value";
    }

default.php:
$db = new dbConnect("localhost","root","****","database");
$sql= new sqlConnect();

//Parameters to send back: table name, id_field name, field name, colum name, where clause, function echoQuery1
$sql->selectQuery("site","","","","","echoQuery1");


Nogen ideer?
Avatar billede barklund Nybegynder
07. august 2006 - 14:26 #1
Hvorfor bruger du ikke en eksisterende databaseabstraktion som PEAR DB, Creole eller noget andet? Der er jo ingen grund til at genopfinde det firkantede hjul? :)

--
Morten Barklund
Avatar billede Slettet bruger
07. august 2006 - 14:32 #2
*Grin*
Fordi det ville være at begå selvmord pr. lærer?
Avatar billede barklund Nybegynder
07. august 2006 - 14:53 #3
In that case... :)

Din callback skal laves, så den kalder funktionen på klassen. Det skal nok laves med:

        while ($row = mysqli_fetch_array($result)) {
            call_user_func(array($this, $callback), $callback($row['email'],$row['welcome']);
        }

Se mere om callbacks her: http://dk.php.net/manual/en/language.pseudo-types.php#language.types.callback

:)

--
Morten Barklund
Avatar billede barklund Nybegynder
07. august 2006 - 14:53 #4
hov, fjern "$callback(" :)
Avatar billede Slettet bruger
08. august 2006 - 10:09 #5
Den hjalp ikke.......
Avatar billede barklund Nybegynder
08. august 2006 - 10:36 #6
Du har jo heller ikke helt fortalt, hvad problemet er - blot at det ikke virker. Jeg kan ikke lige se andre egentlige problemer, så jeg kan ikke hjælpe dig uden yderligere info :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester