Avatar billede webudvikleren Nybegynder
15. maj 2007 - 11:41 Der er 1 kommentar og
1 løsning

PHP klasse problem.

Hej, jeg sidder med et irriterende problem angående klasser i PHP.

Jeg vil hente via en anden klasse, en MySQL-Query, og få output fra det, men det virker ikke. Får en fejl med:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource.

Problemet opstår når jeg trækker det ud.

I min CMSMenu.inc.php fil, har jeg:

<?php
include("MySQLConnector.inc.php");

class CMSMenuSystem extends MySQLConnector
{
  ....

Hvor den inkluderer klassen og laver cmsmenusystem klassen og tilføjer mysql-klassen med i.

Derefter kalder jeg i CMSMenu.inc.php filen:

$Query = $this->MySQLQuery("SELECT `cat`, `name` FROM `menu`");
while ( $Row = mysql_fetch_assoc ( $Query ) )
{

Og det er her det går galt - så kommer den med fejlen.

Min funktion MySQLQuery ser således ud:
public function MySQLQuery( $Query )
    {
        return mysql_query ( $Query )
              or die ( $this->ErrorReport("Den forespurgt mysql-query kunne ikke udføres (" . htmlentities ( $Query ) . ")"));
    }


På forhånd tak.
Avatar billede webudvikleren Nybegynder
15. maj 2007 - 13:16 #1
Fik det løst efter en anden konstruktur.

        global $MySQLDataHolder;
                $MySQLDataHolder = new MySQLConnector;
       
        $a = $MySQLDataHolder->MySQLQuery("SELECT name FROM menu");
        while ( $Row = mysql_fetch_assoc ( $MySQLDataHolder->DataFetchQuery ) )

samtidigt med ændringer i mysql-klassen:

    public function MySQLQuery( $Query )
    {
        $this->DataFetchQuery = mysql_query ( $Query ) or die ( $this->ErrorReport("Den forespurgt mysql-query kunne ikke udføres (" . htmlentities ( $Query ) . ")"));
    }

public $DataFetchQuery;

:-)
Avatar billede windcape Praktikant
15. maj 2007 - 13:17 #2
eeeew globals.

Brug dog en singleton istedet.
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