php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 27-02-2005, 12:05
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Abraxax
deswegen verschieben wir wohl andauernd immer deine threads in das richtige forum.
Das waren bis jetzt höchstens 2, der letzte der mit Mod-Rewrite, wo ich mir hinterher selbst an den Kopp gepackt hab und einen noch als Buffer damit man nicht sagt, dass ich untertreibe ^^

Die restlichen wurden ja mehr oder weniger mißachtet *schulter zuck*

btw.
Zitat:
PHP Developer Forum
Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren.[...]
Ist doch ein Skriptproblem hier, oder nicht? Immerhin funktioniert sein Skript nicht...die Kategoriegrenzen verschwimmen hier nunmal und ehrlich gesagt habe ich keinen Bock mit dem Thema den Thread zuzuspammen...


Zitat:
by Wurzel

ghostgamblers code für php < 5:

PHP-Code:
<?php
class mysql
    
{
        var 
$query_count=0;

        function 
query()
        {
            
$this->query_count++;
            return 
true;
        }
    }

    class 
tools extends mysql
    
{
        function 
query2()
        {
            
parent::query();
            return 
true;
        }
    }

    
$tool = new tools();
    
$tool->query2();
    
$tool->query2();
    
$tool->query2();
    
$tool->query2();
    echo 
$tool->get_query_count;  // direkte abfrage der var
?>
Das ist nicht das, was er möchte. Er möchte klassenweit alle Querys zählen und das geht "richtig" nur mit static und wenn er das nicht hat, muss er sich was flicken, aber der Code oben zählt nicht klassenweit, sondern nur objektweit!



@Eagle
funktioniert mein Codefitzel jetzt und gibt 4 aus?
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #17 (permalink)  
Alt 27-02-2005, 12:08
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
BRAINSTORMING PHP/SQL/HTML/JS/CSS
Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #18 (permalink)  
Alt 27-02-2005, 12:33
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard *Spam*

weiß du was eindeutig zu Brainstorming zählt?
Die "perfekte" Seite
Quelldaten in Seite integrieren
Dringend! Member-Bereic, Passwordabfrage (einmalig)
Ratespiel
Usersystem
deshalb sind diese ja auch alle in der Kategorie, weil da ein Ansatz fehlt und man einfach mal die Meinung anderer einholen will.

Aber:
Zitat:
Eröffnungsposting

[...]Hier gibt's irgendwie einen Bug[...]
Ein Bug kann nur in einem Ansatz vorhanden sein, jedoch:
Zitat:
BRAINSTORMING PHP/SQL/HTML/JS/CSS
Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!
Wo ich dann wieder hier wäre:
Zitat:
PHP Developer Forum
Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!
Mit Zitat antworten
  #19 (permalink)  
Alt 27-02-2005, 13:06
Eagle
 Guest
Eagle
Beiträge: n/a
Standard

Abseits von eurer Diskussion, in welche Kategorie das nun gehört, hab ich mir mal erlaubt, die neue Variante zu posten - siehe 2 oder 3 Postings weiter oben.
Ich hab's jetzt alles mit $this->... gemacht und es funzt auch super.

Allerdings ist da wieder der gleiche Bug: er zählt die 4 Queries in der Tools-Klasse nicht, obwohl er GENAU DAS machen soll!

Meine 2 Fragen sind also:

1. Warum zählt er's nicht mit?

2. Wie krieg ich mein Skript dazu, die 4 Queries mitzuzählen?!?


Danke schon mal für die sicherlich hilfreichen Antworten!
Mit Zitat antworten
  #20 (permalink)  
Alt 27-02-2005, 14:29
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

welchen sinn macht das?

PHP-Code:
!isset($this->sql_queries) ? $this->sql_queries '0' $this->sql_queries++; 
gleiche frage gilt für die Zeile darunter.

mach doch mal ne testausgabe!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #21 (permalink)  
Alt 27-02-2005, 14:34
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also, den Code den du da jetzt hast, der zählt objektweit, d.h. wenn du zwei Objekte hast, dann zählst du die Queries für beide Objekte einzeln, wenn du also ein Objekt von mysql und eines von tools machst, und dann in tools was machst, hinterher jedoch die Zahl von mysql abrufst, dann sind da die Querys von tools nicht drin.
Das was du (denke ich) willst, sind klassenweite Variablen, d.h. EINE Variable für die gesamte Klasse, wo du hinterher die Anzahl abrufen kannst...aber da du mir immernoch nicht verklickert hast, was mein Codefitzel bei dir macht, obwohl ich dich mitlerweile 2 Mal danach gefragt habe, scheint es dich irgendwie auch nicht zu interessieren...

versuch das einfach mal aus, entweder es funktioniert, oder eben nicht...
PHP-Code:
class mysql
{
    var 
$database 'DB_NAME';
    var 
$hostname 'localhost';
    var 
$username 'user';
    var 
$password 'pass';
    var 
$mysqldbQuery 0;
    var 
$fetchedQuery 0;
    var 
$numrowsQuery 0;
    var static 
$sql_gentime 0;
    var static 
$sql_queries 0;

    function 
open()
    {
        
$this->open mysql_connect($this->hostname$this->username$this->password);

        if (!
$this->open)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        
$this->select mysql_select_db($this->database);

        if (!
$this->select)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        return 
$this->open;
        return 
$this->select;    /* hier muss ich noch was ändern,
                                weil ich die Öffnung der Verbindung
                                und das auswählen der DB in EINER
                                Funktion haben will. Ich weiß
                                aber nach wie vor nicht, wie ich
                                das machen kann... :/ */
    
}

    function 
query($mysqldbQuery)
    {
        
$sql_starttime microtime();
        
$this->query mysql_query($mysqldbQuery);
        
$sql_endtime microtime();

        
self::$sql_queries++;
        
self::$sql_gentime round(($sql_endtime $sql_starttime), 3) + self::$sql_gentime;

        if (
$this->query == false)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n
MySQL-Query: " 
$mysqldbQuery "\n<br />\n<br />\n";
        }

        return 
$this->query;
    }

    function 
fetch($fetchedQuery)
    {
        
$fetchedQuery == $this->fetch mysql_fetch_array($this->query) :
$this->fetch mysql_fetch_array($fetchedQuery);

        return 
$this->fetch;
    }

    function 
num_rows($numrowsQuery)
    {
        
$numrowsQuery == $this->num_rows mysql_num_rows($this->query) :
$this->num_rows mysql_num_rows($numrowsQuery);

        return 
$this->num_rows;
    }

    function 
shut()
    {
        
$this->shut mysql_close($this->open);

        if (!
$this->shut)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        return 
$this->shut;
    }
}

$mysql = new mysql;


class 
tools extends mysql
{
    function 
bbc($code)
    {
        
// BBC-Code-Funktionen...
    
}

    function 
usage()
    {
        
$this->open();
        
$this->query("DELETE
                      FROM server_usage
                      WHERE time < " 
. (time() - 86400));

        
$this->query("INSERT
                      INTO server_usage (time, ip)
                      VALUES (" 
time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");
        
$this->query("SELECT time
                      FROM server_usage"
);
        
$this->num_rows();
        
$this->shut();

        return 
$this->num_rows;
    }

    function 
version()
    {
        
$this->open();
        
$build $this->fetch($this->query("SELECT VERSION()"));
        
$this->shut();
        
$this->version substr($build[0], 0, -4);

        return 
$this->version;
    }
}

$tool = new tools
For further information: http://de2.php.net/manual/de/language.oop5.static.php
Mit Zitat antworten
  #22 (permalink)  
Alt 27-02-2005, 16:39
Eagle
 Guest
Eagle
Beiträge: n/a
Standard

Zitat:
Original geschrieben von TobiaZ
welchen sinn macht das?

PHP-Code:
!isset($this->sql_queries) ? $this->sql_queries '0' $this->sql_queries++; 
gleiche frage gilt für die Zeile darunter.

mach doch mal ne testausgabe!
Hab ich gemacht und ghostgambler hat Recht - er gibt mir nur die Anzahl an Queries zurück, die ich mit $mysql->query tätige.
Die Queries, die bei $tool->usage() direkt in der Klasse getätigt werden (sind 4 Stück), zählt er nicht mit - und anscheinend tut er das, weil er "objektweit" zählt und nicht "klassenweit"...

(Versteh' ich das jetzt richtig, dass eine Funktion ein Objekt ist und er quasi nur die Eigenschaften (= Funktionsabläufe?!?) der mysql-Klasse an die tools-Klasse vererbt und nicht auch die Objekte?!?)


Zitat:
Original geschrieben von ghostgambler
Also, den Code den du da jetzt hast, der zählt objektweit, d.h. wenn du zwei Objekte hast, dann zählst du die Queries für beide Objekte einzeln, wenn du also ein Objekt von mysql und eines von tools machst, und dann in tools was machst, hinterher jedoch die Zahl von mysql abrufst, dann sind da die Querys von tools nicht drin.
Das was du (denke ich) willst, sind klassenweite Variablen, d.h. EINE Variable für die gesamte Klasse, wo du hinterher die Anzahl abrufen kannst...aber da du mir immernoch nicht verklickert hast, was mein Codefitzel bei dir macht, obwohl ich dich mitlerweile 2 Mal danach gefragt habe, scheint es dich irgendwie auch nicht zu interessieren...
Sorry, sorry und nochmal sorry - ich hab's einfach verrissen!
Also wenn ich den Code von dir exakt so verwende, wie er bei dir dastand, kommt das:

Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/test.php on line 4

Und in Zeile 4 steht das:

PHP-Code:
static $query_count

Zitat:
Original geschrieben von ghostgambler
versuch das einfach mal aus, entweder es funktioniert, oder eben nicht...
PHP-Code:
class mysql
{
    var 
$database 'DB_NAME';
    var 
$hostname 'localhost';
    var 
$username 'user';
    var 
$password 'pass';
    var 
$mysqldbQuery 0;
    var 
$fetchedQuery 0;
    var 
$numrowsQuery 0;
    var static 
$sql_gentime 0;
    var static 
$sql_queries 0;

    function 
open()
    {
        
$this->open mysql_connect($this->hostname$this->username$this->password);

        if (!
$this->open)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        
$this->select mysql_select_db($this->database);

        if (!
$this->select)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        return 
$this->open;
        return 
$this->select;    /* hier muss ich noch was ändern,
                                weil ich die Öffnung der Verbindung
                                und das auswählen der DB in EINER
                                Funktion haben will. Ich weiß
                                aber nach wie vor nicht, wie ich
                                das machen kann... :/ */
    
}

    function 
query($mysqldbQuery)
    {
        
$sql_starttime microtime();
        
$this->query mysql_query($mysqldbQuery);
        
$sql_endtime microtime();

        
self::$sql_queries++;
        
self::$sql_gentime round(($sql_endtime $sql_starttime), 3) + self::$sql_gentime;

        if (
$this->query == false)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n
MySQL-Query: " 
$mysqldbQuery "\n<br />\n<br />\n";
        }

        return 
$this->query;
    }

    function 
fetch($fetchedQuery)
    {
        
$fetchedQuery == $this->fetch mysql_fetch_array($this->query) :
$this->fetch mysql_fetch_array($fetchedQuery);

        return 
$this->fetch;
    }

    function 
num_rows($numrowsQuery)
    {
        
$numrowsQuery == $this->num_rows mysql_num_rows($this->query) :
$this->num_rows mysql_num_rows($numrowsQuery);

        return 
$this->num_rows;
    }

    function 
shut()
    {
        
$this->shut mysql_close($this->open);

        if (!
$this->shut)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n
<br />\nMySQL-Error: " 
mysql_error() . "\n<br />\n<br />\n";
        }

        return 
$this->shut;
    }
}

$mysql = new mysql;


class 
tools extends mysql
{
    function 
bbc($code)
    {
        
// BBC-Code-Funktionen...
    
}

    function 
usage()
    {
        
$this->open();
        
$this->query("DELETE
                      FROM server_usage
                      WHERE time < " 
. (time() - 86400));

        
$this->query("INSERT
                      INTO server_usage (time, ip)
                      VALUES (" 
time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");
        
$this->query("SELECT time
                      FROM server_usage"
);
        
$this->num_rows();
        
$this->shut();

        return 
$this->num_rows;
    }

    function 
version()
    {
        
$this->open();
        
$build $this->fetch($this->query("SELECT VERSION()"));
        
$this->shut();
        
$this->version substr($build[0], 0, -4);

        return 
$this->version;
    }
}

$tool = new tools
For further information: http://de2.php.net/manual/de/language.oop5.static.php
Wie gesagt, ich hab kein PHP5 auf dem Server und deshalb würd' ich mich mega freuen, wenn du 'ne Variante für PHP 4.3.10 hättest... *ganzliebguck*


Außerdem sagt er zu deinem Variante für meine Klasse Folgendes:

Parse error: parse error, unexpected T_STATIC, expecting T_VARIABLE in /home/www/web8/html/base/basefacts.php on line 30

Und in Zeile 30 steht das:

PHP-Code:
var static $sql_gentime 0

Geändert von Eagle (27-02-2005 um 16:57 Uhr)
Mit Zitat antworten
  #23 (permalink)  
Alt 27-02-2005, 17:40
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Eagle
Hab ich gemacht und ghostgambler hat Recht - er gibt mir nur die Anzahl an Queries zurück, die ich mit $mysql->query tätige.
Die Queries, die bei $tool->usage() direkt in der Klasse getätigt werden (sind 4 Stück), zählt er nicht mit - und anscheinend tut er das, weil er "objektweit" zählt und nicht "klassenweit"...

(Versteh' ich das jetzt richtig, dass eine Funktion ein Objekt ist und er quasi nur die Eigenschaften (= Funktionsabläufe?!?) der mysql-Klasse an die tools-Klasse vererbt und nicht auch die Objekte?!?)
bevor ich mich jetzt fusselig schreibe an Theorieverständnis:
http://www.coding.at/tutorial_6.html
Ist zwar eigentlich auf Version 5 zugeschnitten, aber für die Theorie sollte es auch für Version4 reichen!


Zitat:
Also wenn ich den Code von dir exakt so verwende, wie er bei dir dastand, kommt das:

Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/test.php on line 4

Und in Zeile 4 steht das:

PHP-Code:
static $query_count
[IRONIE]Das ist ja wunderbar[/IRONIE]


Zitat:
Außerdem sagt er zu deinem Variante für meine Klasse Folgendes:

Parse error: parse error, unexpected T_STATIC, expecting T_VARIABLE in /home/www/web8/html/base/basefacts.php on line 30

Und in Zeile 30 steht das:

PHP-Code:
var static $sql_gentime 0
Ich hasse OOP in Version4 >_>
versuch mal statt "var static" "static var"
Mit Zitat antworten
  #24 (permalink)  
Alt 27-02-2005, 17:46
Eagle
 Guest
Eagle
Beiträge: n/a
Standard

Zitat:
Original geschrieben von ghostgambler
bevor ich mich jetzt fusselig schreibe an Theorieverständnis:
http://www.coding.at/tutorial_6.html
Ist zwar eigentlich auf Version 5 zugeschnitten, aber für die Theorie sollte es auch für Version4 reichen!

[IRONIE]Das ist ja wunderbar[/IRONIE]

Ich hasse OOP in Version4 >_>
versuch mal statt "var static" "static var"
@ Tutorial: Ich les es gleich mal durch!

@ Ironie: Jaja, Ironie ist was Feines... - Aber was machen wir denn nun mit deinem Snippet?!?

@ OOP in PHP4: Du wirst lachen, aber das hab' ich direkt selbst versucht gehabt und da wird mir Folgendes zurückgegeben:

Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/base/basefacts.php on line 30

Zeile 30 ist dieser Code:

PHP-Code:
static var $sql_gentime 0
Mit Zitat antworten
  #25 (permalink)  
Alt 27-02-2005, 18:01
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Eagle
@ Tutorial: Ich les es gleich mal durch!
Ich denke du wirst bemerkt haben, dass es von mir ist

Zitat:
Aber was machen wir denn nun mit deinem Snippet?!?
wegschmeißen?
Static scheint in Version 4 überhaupt nicht zu funktionieren...

Versuch mal das:
PHP-Code:
<?php
$GLOBALS
['class']['sql_queries'] = 0;
$GLOBALS['class']['sql_gentime'] = 0;
class 
mysql
{
    var 
$database 'DB_NAME';
    var 
$hostname 'localhost';
    var 
$username 'my_user';
    var 
$password 'my_pass';

    function 
open()
    {
        
$this->open mysql_connect($this->hostname$this->username$this->password);

        if (!
$this->open)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n<br />\n
MySQL-Error: " 
mysql_error();
        }

        
$this->select mysql_select_db($this->database);

        if (!
$this->select)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n<br />\n
MySQL-Error: " 
mysql_error();
        }

        return 
$this->open;
        return 
$this->select;
    }

    function 
query($dbQuery)
    {
        
$sql_starttime microtime();
        
$this->query mysql_query($dbQuery);
        
$sql_endtime microtime();
                
                
$GLOBALS['class']['sql_queries']++;
                
$GLOBALS['class']['sql_gentime'] = 
round(($sql_endtime $sql_starttime), 3) + 
$GLOBALS['class']['sql_gentime'];

        if (
$this->query == false)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n<br />\n
MySQL-Error: " 
mysql_error() . "\n<br />\nMySQL-Query: " $dbQuery;
        }

        return 
$this->query;
    }

    function 
fetch($fetchQuery)
    {
        
$fetchQuery == $this->fetch mysql_fetch_array($this->query) : 
$this->fetch mysql_fetch_array($fetchQuery);

        return 
$this->fetch;
    }

    function 
num_rows($rowsQuery)
    {
        
$rowsQuery == $this->num_rows mysql_num_rows($this->query) : 
$this->num_rows mysql_num_rows($rowsQuery);

        return 
$this->num_rows;
    }

    function 
shut()
    {
        
$this->shut mysql_close($this->open);

        if (!
$this->shut)
        {
            echo 
"MySQL-Error #: " mysql_errno() . "\n<br />\n
MySQL-Error: " 
mysql_error();
        }

        return 
$this->shut;
    }
}

class 
tools extends mysql
{
        function 
usage()
    {
        
$this->open();
        
$this->query("DELETE
                      FROM server_usage
                      WHERE time < " 
. (time() - 86400));

        
$this->query("INSERT
                      INTO server_usage (time, ip)
                      VALUES (" 
time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");

        
$this->query("SELECT time
                      FROM server_usage"
);
        
$this->num_rows();
        
$this->shut();

        return 
$this->num_rows;
    }

    function 
version()
    {
        
$this->open();
        
$build $this->fetch($this->query("SELECT VERSION()"));
        
$this->shut();
        
$this->version substr($build[0], 0, -4);

        return 
$this->version;
    }
}

$tool = new tools();
$mysql = new mysql();

$tool->query('');
$mysql->query('');

echo 
'<br />Queries: ' $class['sql_queries'];
echo 
'<br />Zeit: ' $class['sql_gentime'];
?>
Sollte für Queries dann 2 ausgeben und für gentime auch irgendwas, basiert dann jedoch wieder auf globalen Variablen (nur etwas abgewandelt ^^)
Mit Zitat antworten
  #26 (permalink)  
Alt 27-02-2005, 19:00
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du kannst in php4 'static' nur bei der definition einer variable innerhalb einer funktion oder im allgemeinen codeblock verwenden, nicht jedoch bei der definition der class-eigenschaften.

afaik.
Mit Zitat antworten
  #27 (permalink)  
Alt 27-02-2005, 21:32
Eagle
 Guest
Eagle
Beiträge: n/a
Standard

@ Penizillin: Na super...

@ Ghostgambler:

1. Ja, hab ich...

2. Wenn ich das "static" mal rauslasse, kommt das:

Parse error: parse error, unexpected T_INC, expecting '(' in /home/www/web8/html/base/basefacts.php on line 64

Code von Zeile 64:

PHP-Code:
self::$sql_queries++; 
(Wieso sollen da Klammern hin?!? O.o)

3. Die Variante mit $GLOBALS['class']['sql_queries'] bzw. $GLOBALS['class']['sql_gentime'] bewirkt nix - im Gegenteil: er zählt gar nix mehr und zeigt 2 mal absolut nix an, nicht mal "0"...

Geändert von Eagle (27-02-2005 um 21:34 Uhr)
Mit Zitat antworten
  #28 (permalink)  
Alt 27-02-2005, 22:34
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Eagle
3. Die Variante mit $GLOBALS['class']['sql_queries'] bzw. $GLOBALS['class']['sql_gentime'] bewirkt nix - im Gegenteil: er zählt gar nix mehr und zeigt 2 mal absolut nix an, nicht mal "0"...
Hast du den Code mal exakt so in eine PHP-Datei geschrieben? Ohne auch nur einen einzigen Buchstaben zu verändern?
Ich hatte ja unten schon eine Verwendung mit angefügt...

Bei mir funktioniert der Weg nämlich auch einwandfrei (bis auf die "unsaubere" Art...)

ansonsten kann ich dir leider nicht weiterhelfen, ich hab keine Version 4 zum Testen und ständig auf deine Testauswertung zu warten ist ziemlich nervig (und btw. auch ziemlich langsam...)

Sorry, dann musst du die Querys wohl für jedes Objekt einzeln zählen
Mit Zitat antworten
  #29 (permalink)  
Alt 28-02-2005, 00:32
Eagle
 Guest
Eagle
Beiträge: n/a
Standard

Zitat:
Original geschrieben von ghostgambler
Hast du den Code mal exakt so in eine PHP-Datei geschrieben? Ohne auch nur einen einzigen Buchstaben zu verändern?
Ich hatte ja unten schon eine Verwendung mit angefügt...

Bei mir funktioniert der Weg nämlich auch einwandfrei (bis auf die "unsaubere" Art...)

ansonsten kann ich dir leider nicht weiterhelfen, ich hab keine Version 4 zum Testen und ständig auf deine Testauswertung zu warten ist ziemlich nervig (und btw. auch ziemlich langsam...)

Sorry, dann musst du die Querys wohl für jedes Objekt einzeln zählen
Zuerst nicht, jetzt ja. - Hatte es zuvor einfach in meine MySQL-Klasse eingefügt, da ging's wie gesagt nicht bzw. fehlerhaft.

Wenn ich's in 'ne seperate Datei OHNE irgendwas anderes schreibe, geht's - allerdings gibt's dann immer diese Fehler (die tauchen 2 Mal auf):

Warning: mysql_query(): Access denied for user: 'wwwrun@localhost' (Using password: NO) in /home/www/web8/html/test.php on line 37

Warning: mysql_query(): A link to the server could not be established in /home/www/web8/html/test.php on line 37
MySQL-Error #: 1045
MySQL-Error: Access denied for user: 'wwwrun@localhost' (Using password: NO)
MySQL-Query:


Das scheint aber an dem return-Problem mit der open()-Funktion zu liegen...

Wie dem auch sei, in der Extra-Datei zeigt er dann am Ende eine 2 und 0.0xx als Zeitwert an... - Es geht also! *freu*


Damit bleiben allerdings 2 Fragen übrig:

1. Wieso geht's in der Extra-File und in der MySQL-Klasse selbst nicht?!?

2. Wie kann ich unter PHP 4.3.10 das Problem mit den 2 zurückzugebenden Werten machen, wenn ich's "sauber" programmieren will?!?


Was deine Kritik an meiner Reply-Time betrifft:

Sorry, aber mein Opa hat heute (gestern) seinen 70. Geburtstag gefeiert und ich war relativ wenig am PC...
Ansonsten antworte ich immer recht schnell in Foren, weil mein POP3-Plugin für 'nen IM, den ich nutze, alle 5 mins nach neuen Mails auf dem Server guckt...

Das war also quasi heute 'ne Ausnahme, sonst bin ich immer zwischen 16 und 22 Uhr innerhalb von wenigen Minuten am Beantworten...


LG, MfG und danke nochmals, dass du dir soviel Zeit nimmst, einem "OOP-Advanced-Starter" mal die PHP-Prinzipien von OOP zu erklären, denn RICHTIG GUTE Tutorials dazu scheint's nicht zu geben und als Schüler sind Bücher reiner Luxus, schließlich brauch' ich im Herbst 'n rund 2000€ teures Notebook...
Mit Zitat antworten
  #30 (permalink)  
Alt 28-02-2005, 15:19
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Eagle
Wenn ich's in 'ne seperate Datei OHNE irgendwas anderes schreibe, geht's - allerdings gibt's dann immer diese Fehler (die tauchen 2 Mal auf):
Das ist klar, immerhin sind oben die falschen Daten angegeben, aber er sollte ja auch nur zählen und nichts ausgeben

Zitat:
Das scheint aber an dem return-Problem mit der open()-Funktion zu liegen...
nö...s.o.

Zitat:
1. Wieso geht's in der Extra-File und in der MySQL-Klasse selbst nicht?!?
Weil du zu blöd bist das einzubauen

Zitat:
2. Wie kann ich unter PHP 4.3.10 das Problem mit den 2 zurückzugebenden Werten machen, wenn ich's "sauber" programmieren will?!?
scheinbar gar nicht...sei doch froh, dass es überhaupt funktioniert ^^
OOP in PHP4 ist richtig arm, kann man nicht anders sagen *drop*

Zitat:
Was deine Kritik an meiner Reply-Time betrifft:
Selbst wenn du mir immer sofort geantwortet hättest, hätte ich nicht so schnell die Ergebnisse abrufen können, und während ich den Code 50 mal mit jeweils leichten Veränderungen bei mir getestet hab, hast du ihn vielleicht 5 mal getestet, weil du ihn immer erst wieder kopieren musst, dann einen Post machen musst, usw.

Zitat:
POP3-Plugin für 'nen IM, den ich nutze, alle 5 mins nach neuen Mails auf dem Server guckt...
Den Spam hab ich ausgeschaltet, ich guck hier doch auch so ständig vorbei und mein Postfach, tschuldigung, meine Postfächer, sind sowieso überfüllt mit 3 MLs und "richtigem" Spam und auch ein paar E-Mails die mich interessieren

Zitat:
schließlich brauch' ich im Herbst 'n rund 2000€ teures Notebook...
Och, dass du mein Weihnachtsgeschenk schon so früh kaufst
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:36 Uhr.