php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 3,00 durchschnittlich.
Alt 13.09.2008, 14:20  
Neuer Benutzer
 
Registriert seit: 13.09.2008
Beiträge: 6
pappacoretex befindet sich auf einem aufstrebenden Ast
Standard Call to a member function sQuery() on a non-object

Hey!
Ich habe gerade einen handler für sichere mysql-querys ohne extentions geschrieben, doch ich kann ihn leider nicht aus einer andern classe aufrufen.
Die Struktur ist wie folgt:
PHP-Code:
Class Core{
public 
$database;
...
$this->database=new datanbank;
$this->page = new get_page;
...
}
Class 
database extends core
{
  public function 
sQuery()
  {...}
}
Class 
Page extend core
{
  ...
  
this->database->sQuery(...);  

leider erzeugt der code folgenden fehler:
Code:
Fatal error:  Call to a member function sQuery() on a non-object in ...
Eigentlich ist doch alles richtig initialisiert, wo ist der Fehler? ich seh ihn leider nicht

lg,pappa
pappacoretex ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.09.2008, 14:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

___this->
Fehler verstehen lernen!

Btw. Willkommen im Forum.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2008, 14:57  
Neuer Benutzer
 
Registriert seit: 13.09.2008
Beiträge: 6
pappacoretex befindet sich auf einem aufstrebenden Ast
Standard

Hey!

Die Zeile lautet natürlich

PHP-Code:
Class Page extends core
{
  ...
$erg=$this->database->sQuery(...);

Das ist also nicht der Fehler. oder habe ich nicht verstanden, was du meintest?

lg
pappacoretex ist offline   Mit Zitat antworten
Alt 22.09.2008, 14:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Dann heißts mal wieder:
Ein Fehler enthält auch eine Zeilenangabe. Bitte diese Zeile posten oder kennzeichnen.

Vielleicht rufst Du die Methode ja auch statisch auf?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2008, 15:01  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

PHP-Code:
$this->database=new datanbank
datanbank? nicht database? und database enthält dann durch das extends core nochmal database? hää?
cycap ist offline   Mit Zitat antworten
Alt 22.09.2008, 15:27  
Neuer Benutzer
 
Registriert seit: 13.09.2008
Beiträge: 6
pappacoretex befindet sich auf einem aufstrebenden Ast
Standard

ok, ich glaube ich habe mich etwas in der struktur verzettelt...
am besten fang ich nochmal an.
also ich habe eine Klasse CORE die die classe DATABASE und die classe PAGE initialisiert.

wie müsste die struktur aussehhen, damit ich von PAGE auf DATABASE->funktion() zugreifen kann?
und geht das überhaupt?
pappacoretex ist offline   Mit Zitat antworten
Alt 22.09.2008, 15:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

z.B., indem CORE eine protected getDatabase () Methode erhält, die die Ressource zurückgibt.
Dann:
PHP-Code:
$oDB $this->getDatabase ();
$oDB->query (...); 
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2008, 16:19  
Neuer Benutzer
 
Registriert seit: 13.09.2008
Beiträge: 6
pappacoretex befindet sich auf einem aufstrebenden Ast
Standard

oh jeh, ich glaube ich muss nochmal die komplette classen-strunktur umschreiben.

soweit bin ich gerade
PHP-Code:
class page extends database
{
  
  ...
je nach pageaufruf 
      $template
=file_get_contentsauf das template);
      include 
auf eine phpdatei(keine funktionen/klasen) ->x.php
     
->x.php:initialisieren einer neuen classe (zb$gaestebuch=new gaestebuch;)
     
x.php ersetzt platzhalter in template;
     echo 
$template;
}
class 
database extends core
{
   ...
initialisiert datenbankverbindungstellt funktion sQuery zur verfügung...
}
class 
core
{
  ...
setzt cookies,ggf debugetc...

nach dieser umstellung kann ich zwar aus der klasse get_pageauf die sQuery zugreifen, aber aus der neuen classe(im Bsp gaestebuch) nicht.
ist soein seitenaufbau überhaupt zu empfehlen?
und da ich jetzt mit extends gearbeitet habe, kann ich doch keine recource übergeben, oder?

also wie kann man den seitenaufbau verbessern und wie kann ich aus den unterklasse auf die sQuery zugreifen?

lg, und schonmal vielen dank
pappacoretex ist offline   Mit Zitat antworten
Alt 22.09.2008, 16:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Tipp: Machs gleich abstrakter! Solche '...je nach pageaufruf ' Sachen lassen sich gut mit Vererbung bzw. Interfaces lösen. Du definierst nur ne leere Methode, die erst in einer abgeleiteten Klasse Funktionalität erhält.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.09.2008, 16:40  
Neuer Benutzer
 
Registriert seit: 13.09.2008
Beiträge: 6
pappacoretex befindet sich auf einem aufstrebenden Ast
Standard

ich habe in tutorials immer wieder von abstract bzw interfaces gelesen doch ist mir der sinn der sache nicht ganz klar.
warum soll ich etwas definieren, wass ich in der klasse die ich eigentlich initialisieren will nochmal tun muss?
und wie würde soeine seitenstruktur mit interfaces aussehen?
pappacoretex ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Call to a member function on a non-object campinge PHP Tipps 2008 1 18.08.2008 02:31
[Erledigt] Fatal Error:"Call to a member function on a non-object" Floyd PHP Tipps 2008 4 15.08.2008 13:35
Call to a member function ... on a non-object funnx PHP Tipps 2008 6 29.07.2008 18:08
Fatal error: Call to a member function on a non-object tweek PHP Tipps 2008 13 25.06.2008 12:56
Fatal error: Call to a member function on a non-object atom-dragon PHP Tipps 2007 20 02.12.2007 22:22
Call to a member function on a non-object Riks PHP Tipps 2007 20 10.02.2007 22:59
Problem Call to a member function on a non-object PHP Tipps 2005 5 24.05.2005 19:14
Call to a member function on a non-object PHP Tipps 2005 12 24.05.2005 04:06
Fatal error: Call to a member function on a non-object PHP Tipps 2005 7 13.04.2005 07:24
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
Fatal error: Call to a member function on a non-object PHP Tipps 2005 15 04.02.2005 13:02
Fatal error: Call to undefined function: imagecreatefromjpeg DannyD PHP-Fortgeschrittene 10 05.12.2004 21:59
Call to a member function on a non-object --> WARUM ? PHP Tipps 2004-2 4 25.11.2004 20:16
[Erledigt] Call to undefined function highlight() PHP Tipps 2004 1 07.09.2004 09:31
[Erledigt] Fatal error: Call to undefined function:... PHP Tipps 2004 8 27.06.2004 12:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
call to a member function query() on a non-object, call to a member function query() on a non-object in, \call to a member function query() on a non-object \, fatal error: call to a member function query() on a non-object in, squery, call to a member function data() on a non-object, call to a member function executequery() on a non-objec, call to a member function querystring() on a non-object, function extend() on a non-object, call to a member function query() on a non-object in funktion, fatal error: call to a member function extend() on a non-object, php squery, fatal error: call to a member function query(), php extends call to a member function, was ist squery, \call to a member function query() on a non-object\, fatal error: call to a member function query() on a non-object, zugriff call php function, call to a member function database_query() on a non-object, extend object php

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum