Login  Regeln Aktuelles Datum und Uhrzeit: 06.09.2008, 18:24  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
Klassen Instanz in anderer Datei verfügbar machen

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 11:20    Titel: Klassen Instanz in anderer Datei verfügbar machen Antworten mit Zitat

Hallo.

Ich habe ein kleines Problem.
Ich möchte gerne eine bestimmte Klasseninstanz meiner Klasse MySQL in einer nachfolgend per include eingebundenen Datei verfügbar machen

Also - ich habe in Datei 1 die Klasse aufgerufen mit der Variable $sql.
So - jetzt hab ich danach eine Datei functions.php per include eingebunden und möchte gerne auf die Klasse (Instanz) mit der gleichen Variable $sql zugreifen!

Wie bekomme ich das hin? Ich weis es leider nicht! Traurig

Hoffe das ihr mir da helfen könnt

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 12:00    Titel: Antworten mit Zitat

Ohne Code kann ich jetzt nur blind drauf los raten. Aber heir mal eine möglichkeit:

Also deine mysql.php wird wohl irgemndwie so aussehen:
Code:
class mysql
{
    function mysql() // Constructor
    { }
   
    function TuWas( $was_denn )
    {
        echo $was_denn;
    }
}

$sql = new mysql(); // das ist wichtig, um die variable global zu machen, darf sie nicht mit in der classen dekleration stehen


Und deine functions.php, in der du auf die $sql variable zugreifen möchtetst,könnte so aussehen Sehr glücklich

Code:
class FooBar
{
    function FooBar() // Constrcutor
    { }
   
    function Tu_Was_Mit_SQL( $was_denn )
    {
          global $sql; // das hier ist der knackpunkt. Damit kannst du dann auf deklarierte globale variablen zugreifen.
         
          $sql->TuWas( $was_denn );
    }
}

$foobar = new FooBar();
$foobar->Tu_Was_Mit_SQL( "Bla bla bla" );


Meinste das so? Wenn nciht poste mal deinen code Sehr glücklich

_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 12:33    Titel: Antworten mit Zitat

Hi, nicht ganz!

Nein - wie ich eine Klasse in einer anderen Klasse verfügbar mache weis ich. Aber das brauch ich nicht ^^. Da in der functions.php nur Funktionen (ohne Klassen) drin stehen.
Meine Codes sieht so aus:
index.php:
Code:
$config = $root."includes/config.php";
$functions = $root."includes/functions.php";
if(!file_exists($config)) {
die("<font color=\"#FF0000\"><b>Kritischer Fehler:</b></font><br>\nEs wurde keine Konfigurationsdatei auf <b>$root</b> gefunden");
}
include $config;
$sql = new MySQL('connect');
.....
include $functions;
include $tplfile;

und die functions.php:
Code:
function sitenews() {
   $newsq = $sql->getQuery('SELECT hj_news.newsid, hj_news.newstitle, hj_news.newscat, hj_news.newstext, hj_news.newsautor, hj_news.newsdate, hj_news_cat.ncatid, hj_news_cat.ncattitle, hj_news_cat.ncatdesc FROM hj_news, hj_news_cat WHERE hj_news.newscat = hj_news_cat.ncatid = 1 ORDER BY hj_news.newsdate desc');
   
   if(mysql_num_rows($newsq) > 0) {
   
   } else {
   die("Es sind zur Zeit keine News für die Homepage vorhanden");
   }
}


Die Klasse hat eigentlich nichts damit zu tun, deshalb hab ich den Code hier nicht gepostet.

Falls du noch mehr brauchst - ich bin online Smilie

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 12:42    Titel: Antworten mit Zitat

Also wenn ich dich jetzt richtig verstehe, dann kannst du in der funktion sitenews nicht auf $sql zugreifen?

Probiers doch mal stumpf mit
Code:
global $sql;
Winken
_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 12:49    Titel: Antworten mit Zitat

^^ hab ich schon

geht nicht Traurig(

in einem anderen Forum sagte man mir das ich gar nicht die Klasse neu einbinden muss (was ja eh nicht geht) - das ich diese einfach benutzen könnte Traurig(
Aber - das ist ja nicht so! Sieht man ja Traurig(

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 12:53    Titel: Antworten mit Zitat

Gibt er denn einen fehler raus?
_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 12:54    Titel: Antworten mit Zitat

^^
den hier:
Code:
Notice: Undefined variable: sql in /home/www/web2/html/v2/includes/functions.php on line 19

Fatal error: Call to a member function getQuery() on a non-object in /home/www/web2/html/v2/includes/functions.php on line 19


Line 19 ist die SQL Abfrage wie oben gepostet

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 13:12    Titel: Antworten mit Zitat

Ich hab mal ein bissel in der PHP Doc und im inet rumgesucht und es müsste mit global gehen. Vllt haste irgendwo einen fehler in deinem script nach $sql = new MySQL('connect');

Hast du irgendwo nach $sql = new MySQL('connect'); die variable nochmal neu zugewiesen? Also überschrieben?

was gibt er denn aus wenn du das machst:

Code:
function sitenews() {
   global $sql;
   print_r( $sql );

/*   $newsq = $sql->getQuery('SELECT hj_news.newsid, hj_news.newstitle, hj_news.newscat, hj_news.newstext, hj_news.newsautor, hj_news.newsdate, hj_news_cat.ncatid, hj_news_cat.ncattitle, hj_news_cat.ncatdesc FROM hj_news, hj_news_cat WHERE hj_news.newscat = hj_news_cat.ncatid = 1 ORDER BY hj_news.newsdate desc');
   
  // if(mysql_num_rows($newsq) > 0) {
   
//   } else {
  // die("Es sind zur Zeit keine News für die Homepage vorhanden");
   } */
}


Aso vergessen:

du solltest auch schaun ob das dann mit dem hier übereinstimmt:

Code:
$sql = new MySQL('connect');
print_r( $sql );


Wenn nciht haste irgendwo mitten drin den fehler

_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 13:29    Titel: Antworten mit Zitat

hi, guck mal bitte selber ^^

da gibt es etliches aus:
http://happyjumble.de/v2/index.php?menue=default
aber nur unter default gucken ^^ die anderen haben nicht den Funktionsaufruf drin im switch

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 13:35    Titel: Antworten mit Zitat

Hast das jetzt so gemacht wie ich geschrieben habe? Wenn ja, müsste das er die $sql var mot global auch in deiner funktion finden. Beides ist ein MySQL Object.
Gibt er immer noch den fehler aus wenn du das hier schreibst:

Code:
function sitenews() {
   global $sql;
   $newsq = $sql->getQuery('SELECT hj_news.newsid, hj_news.newstitle, hj_news.newscat, hj_news.newstext, hj_news.newsautor, hj_news.newsdate, hj_news_cat.ncatid, hj_news_cat.ncattitle, hj_news_cat.ncatdesc FROM hj_news, hj_news_cat WHERE hj_news.newscat = hj_news_cat.ncatid = 1 ORDER BY hj_news.newsdate desc');
   
   if(mysql_num_rows($newsq) > 0) {
   
   } else {
   die("Es sind zur Zeit keine News für die Homepage vorhanden");
   }
}

_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 13:44    Titel: Antworten mit Zitat

Nein, er gibt gar nichts mehr aus.

Jetzt weis ich nicht ob das Script funktioniert. Aber - es kann ja eigentlich nicht funktionieren - denn wenn es so wäre würde er die Seite richtig darstellen oder? ^^

macht er aber nicht, wenn du mal auf Fotogalerie (?menue=galerie) gehst oder so z.B. sieht das ganz anders aus. So - wie es auch eigentlich aussehen sollte!

Da wäre dann auch noch meine Frage: Wieso mach ich die Variable erst in der functions.php global verfügbar? und nicht in der index?

Wenn ich diese zwei Zeilen nach den Query schreibe
Code:
   $newsr = mysql_fetch_assoc($newsq);
   echo $newsr;
sollte eigentlich die Ausgabe für $newsr Array lauten.
So - er gibt aber einfach nichts mehr aus Traurig

_________________
Mit freundlichen Grüßen

BiBaButzemann


Zuletzt bearbeitet von BiBaButzemann am 09.09.2007, 14:07, insgesamt einmal bearbeitet


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 14:06    Titel: Antworten mit Zitat

Also echo und print_r sind imemr ne super sache um fehler zu finden Winken

Probiers mal:

Code:
function sitenews() {
   global $sql;
   $newsq = $sql->getQuery('SELECT hj_news.newsid, hj_news.newstitle, hj_news.newscat, hj_news.newstext, hj_news.newsautor, hj_news.newsdate, hj_news_cat.ncatid, hj_news_cat.ncattitle, hj_news_cat.ncatdesc FROM hj_news, hj_news_cat WHERE hj_news.newscat = hj_news_cat.ncatid = 1 ORDER BY hj_news.newsdate desc');
   
   if(mysql_num_rows($newsq) > 0) {
   
   } else {
   die("Es sind zur Zeit keine News für die Homepage vorhanden");
   }

   print_r( "NEWSQ: ".$newsq );
}


wenn da nix kommt, erschiess dich Sehr glücklich Nein, dann will ich mal deinen ganzejn code sehen, dann finden wir den fehelr leichter. Denn irgendwo ahst du defenitiv einen drinne Winken

_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
BiBaButzemann
Erfahrener [User]
Erfahrener



Anmeldung: 25.06.06
Beiträge: 91
Wohnort: Moers

BeitragVerfasst am: 09.09.2007, 14:08    Titel: Antworten mit Zitat

Sorry, da haben wir beide gleichzeitig nen Post bearbeitet Smilie

"...
Wenn ich diese zwei Zeilen nach den Query schreibe
Code:
$newsr = mysql_fetch_assoc($newsq);
echo $newsr;
sollte eigentlich die Ausgabe für $newsr Array lauten.
So - er gibt aber einfach nichts mehr aus Traurig ..."

- welche Codes brauchst du alle?

_________________
Mit freundlichen Grüßen

BiBaButzemann


Nach oben
Private Nachricht senden
TNDAriakas
Beliebter [User]
Beliebter



Anmeldung: 31.07.07
Beiträge: 277
Wohnort: Bremen

BeitragVerfasst am: 09.09.2007, 14:12    Titel: Antworten mit Zitat

naja den der relevant ist für die seite Winken
Ich schick dir mal per PN meine ICQ nummer...

_________________
So long...Ari
Error! Reality.sys is corrupt. Smash head on keyboard to restart universe.
Google ist dein Freund


Nach oben
Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Hilfe mit EPS-DATEI maxx15 Grafik-Forum 3 05.08.2008, 23:22 Letzten Beitrag anzeigen
Keine neuen Beiträge CSS Mozilla kompatibel machen, aber i... Galaxy HTML & CSS 3 31.07.2008, 16:13 Letzten Beitrag anzeigen
Keine neuen Beiträge Wie kann ich dass machen damit mein l... xxphpxx Einsteigerforum 3 23.07.2008, 19:35 Letzten Beitrag anzeigen
Keine neuen Beiträge Java Script Login Datei dennispgg Sitecheck 6 22.07.2008, 23:03 Letzten Beitrag anzeigen
Keine neuen Beiträge kann mir jemand eine Homepage machen ? mwvideos Kleinanzeigen 0 30.05.2008, 14:53 Letzten Beitrag anzeigen
Threadübersicht