Localhost til online

Tags:    php oop

<< < 12 > >>
Hej udviklere!

Mit problem går ud på at jeg kalder et objekt ud fra en funktion, hvilket burde virke fint da det virkede på min localhost. Men så snart jeg uploadede det til mit webhotel, fik jeg massere af fejl omkring netop dette.

Kort sagt: jeg har en class-db.php fil, med min database class. I den har jeg flere funktioner, der udgør flere ting. Såsom public function select som henter mine data ned fra database. Ligeledes har jeg update, insert og delete. Mit problem er at jeg har disse linjer kode:

class-functions.php
Fold kodeboks ind/udPHP kode 


class-query.php
Fold kodeboks ind/udPHP kode 


Og jeg får denne fejlmeddelelse:
Fold kodeboks ind/udKode 


Hvad kan det skyldes?

På forhånd tak :-).



11 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Mit umiddelbare bud er, at $cnt er tom, fx fordi databaseforbindelsen ikke er korrekt oprettet.

Du kan jo begynde at debugge ved at se, om der ligger noget i $cnt inden du få fejlen.

Fold kodeboks ind/udPHP kode 


Hvis den er tom, så kan du jo gå et skridt længere tilbage og indsætte en "or die()" i din mysql query i din select-funktion.



Hvorfor er det egentligt, at du har indsat (int) foran?
Den vil vel prøve at lave dit object med resultaterne fra sin select om til en int. Fordi der er data validerer dette til true og den ændrer dataen til 1 (true) - ville jeg tro.
Kan du evt. fjerne (int) foran og se hvad der sker?



Okay, så fjern var_dump-linjen og prøv igen.
Hvis du gerne vil have $cnt til at være en integer kan du jo sætte din (int) udfor den linje:

Fold kodeboks ind/udPHP kode 




Ok. Hvad er "$functions" - er det en klasse du har initieret?

Og hvor kaldes "$data = $functions->pagination();" fra? - indefra samme klasse som pagination-funktionen?



Okay, og du er sikker på, at $functions bliver korrekt defineret inden du bruger den i $paging = $functions->pagination(); ?

Du kan evt. lave var_dump($functions) igen inden ovenstående linje, for at se, om den findes.




Den udskriver det her:

Fold kodeboks ind/udKode 


Min class-db.php ser således ud:
Fold kodeboks ind/udPHP kode 


Har blot udskiftet værdierne med 3 stjerner.



Indlæg senest redigeret d. 31.10.2014 13:37 af Bruger #16025
Dette er resultatet uden (int)
Fold kodeboks ind/udPHP kode 




Ser ud til at virke nu. Får blot en ny fejlmeddelelse:
Fold kodeboks ind/udKode 


Fold kodeboks ind/udPHP kode 


Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 31.10.2014 13:42 af Bruger #16025
Tror ellers jeg fandt fejlen. For det var lavet lidt kryptisk.

Havde skrevet dette i categories.php filen
Fold kodeboks ind/udPHP kode 


Det ændrede jeg så til
Fold kodeboks ind/udPHP kode 


Men stadig samme fejl. Men prøver lidt at forklare min opstilling:

Jeg kalder min pagination() function inde i categories.php. Men funktionen findes i min class-functions.php fil.

Og til dit spørgsmål. $functions ser således ud:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 31.10.2014 13:49 af Bruger #16025
Det hele ser ud til at virke nu. Tusind tak for hjælpen!

Dumfejlen var bare at jeg havde glemt at uploade categories.php filen, og havde kun uploaded class-functions.php filen -.-

Resultatet var blot som du sagde: (int) skulle fjernes. Gav også mening. Og den anden fejl var at jeg prøvede at kalde min pagination function ved $paging() istedet for $paging.

Igen tak for hjælpen!



<< < 12 > >>
t