php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.04.2009, 16:04  
Katzenfreundin
 
Registriert seit: 04.03.2009
Beiträge: 29
Lesnivila befindet sich auf einem aufstrebenden Ast
Standard Flash-Games-Portal soll performancelastige Endlosschleife haben

Hallo,
unser Webhoster ist der Ansicht, dass "einige der Scripte" Endlosschleifen enthalten. Die Kritik kam seltsamerweise erst dann als für ein mittlerweile gelöschtes Browsergame ein Server her sollte. Dies ist nun der Code zu den 120 Flashgames, die wir auf Kater Blackys Spiele-Portal haben. Dies dürfte die massgebliche Datei system.class.php sein, die evtl. Performance kostet. Könnte bitte jemand sagen, ob dem tatsächlich so ist bzw. wie man das schreiben muss, damit nicht so viel Performance genommen wird? Wir können uns leider keinen eigenen Server finanziell leisten. Vielen Dank im Voraus.
Gruss
Lesnivila

PHP-Code:
<?php
/* Date | GamesPlayed */
require("db.cnf.php");
require(
"templates.tpl.php");

class 
GamesSystem {

    var 
$gamedata;
    var 
$imgdir;
    var 
$swfdir;
    var 
$loaded;
    var 
$template;
    var 
$am;

    function 
GamesSystem($admin_mode 0){
        if(
$admin_mode != 1){
            global 
$templates;
            
$this->template $templates;
        }
        
$this->gamedata = array();
        
$this->imgdir './images';
        
$this->loaded false;
        
$this->swfdir './swf';
        
$this->am $admin_mode;
    }

    function 
vQ($info){
        if(
$this->am == 1){
            return 
$info.' != \'1\'';
        } else {
            return 
'';
        }
    }

    function 
Load(){
        
$getCategories "SELECT cId,cName FROM categories WHERE cVisible 

= '1' "
.$this->vQ('OR cVisible')." ORDER BY cOrder ASC";

        if(
$cats = @mysql_query($getCategories)){

            while(
$category = @mysql_fetch_assoc($cats)){

                
$this->gamedata[$category['cId']] = $category;

                
$this->gamedata[$category['cId']]['games'] = array();

            }

            
$this->gamedata[0] = array('cId' => 0'cName' => 'Other Games'
'games' => array());

            
$getGameData "SELECT g.gId, g.gDescription, g.gSwfFile, 
g.gVisible, g.gInCategory, g.gThumb, g.gName, p.Played FROM

            games as g, playstats as p WHERE g.gId = p.pgId AND g.gVisible = 
'1' "
.$this->vQ('OR g.gVisible')."

            ORDER BY gOrder ASC, p.Played DESC"
;

            if(
$games = @mysql_query($getGameData)){

                while(
$game = @mysql_fetch_assoc($games)){

                    if(!isset(
$this->gamedata[$game['gInCategory']])){

                        
$game['gInCategory'] = 0;

                    }
                    
$this->gamedata[$game['gInCategory']]['games']
[
$game['gId']] = $game;

                }
                
$this->loaded true;

                return 
true;

            } else {

                return 
false;

            }

        } else {

            return 
false;

        }

    }


    function 
addPlay($gid){

        
$quickcheck "SELECT Date FROM gamestoday WHERE Date = 
'"
.date("dmy")."'";

        if(@
mysql_num_rows(mysql_query($quickcheck)) < 1){

            @
mysql_query("INSERT INTO gamestoday VALUES ('".date("dmy")."', 
0)"
);
        }

        
$update "UPDATE playstats SET Played = (Played+1) WHERE pgId = 
'"
.$gid."'";

        
$update2 "UPDATE gamestoday SET GamesPlayed = 
(GamesPlayed+1) WHERE Date = '"
.date("dmy")."'";

        if(@
mysql_query($update) && @mysql_query($update2)){

            return 
true;

        } else {

            return 
false;

        }

    }


    function 
loadPlay($gid,$cid){

        if(
$cid == 0){

            
$load "SELECT 
g.gId,g.gSwfFile,g.gName,g.gInCategory,g.gDescription,g.gWidth,g.gHeight 
FROM

            games as g WHERE g.gId='"
.$gid."'";

        } else {

            
$load "SELECT 
g.gId,g.gSwfFile,g.gName,g.gInCategory,g.gDescription,g.gWidth,g.gHeight,c.cName 
FROM

            games as g, categories as c WHERE g.gId='"
.$gid."' AND 
g.gInCategory = c.cId"
;

        }

        if(
$data = @mysql_query($load)){

            
$data = @mysql_fetch_assoc($data);

            if(
$cid == 0){

                
$data['cName'] = 'Other Games';

            }

            return 
$data;

        } else {

            return 
false;

        }


    }


    function 
isLoaded(){

        if(
$this->loaded == true){

            return 
true;

        } else {

            return 
false;

        }

    }

    function 
makeGamesList(){

        if(!
$this->isLoaded()){

            
$this->Load();

        }

        
$output "";

        foreach(
$this->gamedata as $category){

            
$games "";

            
$gamedata "";

            if(
count($category['games']) > 0){

                
$count 0;

                foreach(
$category['games'] as $game){

                    if((
$count 2) == || count($category['games']) == 1){

                        eval(
"\$games .= \"".$this->template['game']."\";");

                        eval(
"\$gamedata .= \"".$this->template['gdoublewrapper']."
\";"
);
                        
$games "";

                    } else {

                        eval(
"\$games .= \"".$this->template['game']."\";");

                    }

                    
$count++;


                    if(
count($category['games']) != && 
(
count($category['games']) % 2) == && ($count == 
count($category['games']))){

                        eval(
"\$gamedata .= \"".$this->template['gdoublewrapper']."
\";"
);
                    }

                }

                eval(
"\$output .= \"".$this->template['category']."\";");

            }

        }

        return 
$output;

    }


    function 
doMostPlayed($showonly 10){

        
$list "";

        
$action "Top Games";

        
$getRecent "SELECT pcId,pgId FROM playstats ORDER BY Played 
DESC LIMIT "
.$showonly;

        if(
$data = @mysql_query($getRecent)){

            while(
$statdata = @mysql_fetch_assoc($data)){

                
$stat $this->gamedata[$statdata['pcId']]['games']
[
$statdata['pgId']];

                
$extra ' [ '.$stat['Played'].' plays ]';

                eval(
"\$list .= \"".$this->template['list_repeat_all']."\";");

            }

            eval(
"\$return = \"".$this->template['list_wrapper_all']."\";");

            return 
$return;

        } else {

            return 
false;

        }

    }


    function 
doNewestGames($limit 10){

        
$action 'Newest Games';

        
$list "";

        
$getRecent "SELECT gId,gInCategory FROM games ORDER BY gId 
DESC LIMIT "
.$limit;

        if(
$data = @mysql_query($getRecent)){

            while(
$statdata = @mysql_fetch_assoc($data)){

                
$stat $this->gamedata[$statdata['gInCategory']]['games']
[
$statdata['gId']];

                
$extra ='';

                eval(
"\$list .= \"".$this->template['list_repeat_all']."\";");

            }

            eval(
"\$return = \"".$this->template['list_wrapper_all']."\";");

            return 
$return;

        } else {

            return 
false;

        }

    }


    function 
makeGameHtml($id,$cid){

        
$game $this->loadPlay($id,$cid);

        eval(
"\$html = \"".$this->template['game_play']."\";");

        return 
$html;

    }


    function 
makeOptionList(){


        
$opt "";

        
$sortorder = array();

        foreach(
$this->gamedata as $category){

            foreach(
$category['games'] as $game){

                
$sortorder[$game['gName']] = array($category['cId'], 
$game['gId']);

            }

        }

        
ksort($sortorder);

        foreach(
$sortorder as $game){

            
$opt .= '<option value="'.$_SERVER['PHP_SELF'].'?act=play&
id='
.$this->gamedata[$game[0]]['games'][$game[1]]['gId'].'&
cid='
.$this->gamedata[$game[0]]['games'][$game[1]]
[
'gInCategory'].'">'.$this->gamedata[$game[0]]['games'][$game[1]]
[
'gName'].'</option>';

        }

        return 
$opt;


    }

    function 
getPlaysToday(){

        
$get "SELECT GamesPlayed FROM gamestoday WHERE Date = '".date("dmy")."'";

        if(
$data = @mysql_query($get)){

            
$num mysql_fetch_row($data);

            return 
$num[0];

        } else {

            return 
'';

        }

    }


}


?>
Lesnivila ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.04.2009, 16:29  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Entferne doch einfach mal die ganzen @ vor den mysql abfragen.
Damit dein script nicht stirbt, verwende exceptions.

Soweit ich das beurteilen kann, wird wohl eine fehlerhafte Abfrage dran schuld sein und dann ist dieser Part hier wohl der übeltäter:

PHP-Code:
  function makeGamesList(){

        if(!
$this->isLoaded()){

            
$this->Load();

        } 
gruß
rudygotya ist gerade online  
Alt 02.05.2010, 19:07  
Neuer Benutzer
 
Registriert seit: 17.08.2009
Beiträge: 5
PHP-Kenntnisse:
Anfänger
rene2605 befindet sich auf einem aufstrebenden Ast
Standard

Hallo!

Zu diesem script habe ich eine Frage.

Wie kann ich denn die Spielekategorien einzeln anzeigen lassen.

Also z.B.s. nur Action/ Adentventure, statt das alle aufgelistet werden.

Bitte um Hilfe
rene2605 ist offline  
Alt 03.05.2010, 16:17  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Betreiber kontaktieren, Scriptbörse oder PHP lernen.
cetalian ist offline  
Alt 03.05.2010, 16:41  
Erfahrener Benutzer
 
Registriert seit: 15.04.2010
Beiträge: 813
PHP-Kenntnisse:
Fortgeschritten
Paul.Schramenko befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Lesnivila Beitrag anzeigen
Könnte bitte jemand sagen, ob dem tatsächlich so ist bzw. wie man das schreiben muss, damit nicht so viel Performance genommen wird?
Gehört wohl eher in die Skriptbörse...
__________________
"My software never has bugs, it just develops random features."
"Real programmers don't comment. If it was hard to write, it should be hard to understand!"
Positive Bewertungen sind nicht unwillkommen...
Paul.Schramenko ist offline  
Alt 03.05.2010, 17:03  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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

@Paul: Bitte beachten: Ausgangsfrage ist schon 1 Jahr alt.
__________________
--
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  
 


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
[Erledigt] Frage zu SEO und Flash litterauspirna Off-Topic Diskussionen 5 14.03.2009 11:29
Aufzählung für Flash RealXtC PHP Tipps 2008 4 08.03.2008 16:00
flash + php = Problem Peter Lustig PHP Tipps 2008 4 28.12.2007 10:51
XHTML 1.0 Transitional & Flash JEGO HTML, Usability und Barrierefreiheit 2 07.08.2006 10:21
Banner im Layer über nem Flash! Quagga HTML, Usability und Barrierefreiheit 13 21.02.2006 19:05
PHP mit Flash plongo_291 PHP Tipps 2006 57 20.01.2006 14:55
phpsessid bei flash menü übergeben PHP Tipps 2005-2 2 16.09.2005 16:01
warum endlosschleife? PHP Tipps 2005-2 6 31.08.2005 20:45
[Erledigt] JS-Weiche für Flash Applet? HTML, Usability und Barrierefreiheit 0 03.08.2005 12:16
div über flash legen + jp statt flash HTML, Usability und Barrierefreiheit 14 02.02.2005 12:14
mal ne andere frage: flash HTML, Usability und Barrierefreiheit 0 07.01.2005 17:18
[Erledigt] Online Games für eine Website? Off-Topic Diskussionen 2 27.12.2004 01:46
Flash - was haltet ihr davon? Monkey Off-Topic Diskussionen 15 02.07.2004 20:02
Flash mit PHP oder umgekehrt ?! PHP Tipps 2004 1 02.07.2004 07:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
nacktscanner game, nacktscanner flash game, flash games html code, gamegidgame, nacktscanner flashgame, flash game db.cnf.php, performancelastig, cname from categories where cvisible, performancelastige websites, flashgame endlosschleife, гамегидгаме, flash games portal template, nacktscanner flash browsergame, flash spiele portal scripts, elect g.gid, g.gdescription, g.gswffile, g.gvisible, g.gincategory, g.gthumb, g.gname, p.played from, flashgames-portals.de, as2 endlosschleife, performancelastiger, flashgame kostet viel performance ?, endlosschleife flash lustig

Alle Zeitangaben in WEZ +2. Es ist jetzt 19: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