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
  #1 (permalink)  
Alt 31-03-2008, 21:38
dope76
 Newbie
Links : Onlinestatus : dope76 ist offline
Registriert seit: Mar 2008
Beiträge: 4
dope76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sortierung nach Modifikation falsch

Hallo,

Ich will ein Script für eine Joomla Komponente anpassen und eine Blätterfuntion miteinbauen.
Die Blätterfuntion funtioniert auch schon.
Das Problem ist, das die Sortierung mit der
Blätterfunktion nicht mehr stimmt und ich
jetzt langsam echt keinen Rat mehr habe .

Hier der Code:

PHP-Code:
 class getHighScoresTab extends cbTabHandler {

    function 
getHighScoresTab() {
        
$this->cbTabHandler();
    }

    function 
getDisplayTab($tab,$user,$ui) {
        global 
$mosConfig_lang$mosConfig_absolute_path,
 
$mosConfig_live_site$mosConfig_offset$database$my;

        
$limit      mosGetParam$_REQUEST'limit'10 );
    
$limitstart mosGetParam$_REQUEST'limitstart');
     
$levellimit mosGetParam$_REQUEST'levellimit'10 );

    
//Blaetterfunktion 
    
    
$database->setQuery("SELECT count(*) FROM #__puarcade WHERE userid = ".$user->user_id." ;");
    
$total $database->loadResult();
    require_once (
$mosConfig_absolute_path.'/includes/pageNavigation.php');
    
$limit $limit $limit 10 ;
    if ( 
$total <= $limit $limitstart 0;
    
$pageNav = new mosPageNav$total$limitstart$limit);
        
        
//load variales
        //DEFINE('_UE_CBETAB_JOGFL_HEADER', "Highscores")
        
$params=$this->params;
        
$HStopicTXT $params->get('HStopicTXT'"Spiele von");
        
$HScol1TXT $params->get('HScol1TXT'"Rang");
        
$HScol2TXT $params->get('HScol2TXT'"Spiel");
        
$HScol3TXT $params->get('HScol3TXT'"Punkte");
        
$HSsryTXT $params->get('HSsryTXT',"Du kannst gerade nicht spielen!");
        
$HSnoentryTXT $params->get('HSnoentryTXT',"Dieser Benutzer hat noch .........!");
                
        
DEFINE('_UE_CBTAB_PU_HEADER'"cbhighscoretab");
        
//define content
        
$content="<table width='100%' cellspacing=2 border=0>";

        
//$content="<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">";
        
                
    
$database->setQuery("SELECT score, gameid FROM #__puarcade" .
            
" WHERE userid = ".$user->user_id."" .
                    
" LIMIT ".$pageNav->limitstart.", ".$pageNav->limit.";");
    
$gameidscores $database->loadObjectList();
        
        
        
//if-clause if a user have no entrys in score table

        
if(count($gameidscores)){

        foreach(
$gameidscores AS $gameidscore){
          
//count useres who have more point than him. this result +1 is the rank
          
$database->setQuery("SELECT count(*) FROM #__puarcade
 WHERE gameid="
.$gameidscore->gameid." AND score > ".$gameidscore->score.";");
          
$rank NULL;
          
$rank=$database->loadResult() + 1;

          
//get gamedata like picture and name
          
$game_data NULL;
          
$database->setQuery("SELECT gamename, imagename, published FROM #__puarcade_games 
WHERE id="
.$gameidscore->gameid.";");
          
$database->loadObject$game_data );
          
//check if game really exisits, or if theres only dead data in scores table
          
if(isset($game_data->gamename)){
            
$highscores[] = array($rank,$game_data->gamename,$game_data->imagename,
$gameidscore->gameid,$game_data->published,$gameidscore->score);
         
          }
         
        }
        
//Sort Array by Rank
        
array_multisort($highscores );
         
 

         
//TableHeader - Topic
        
$content.="<tr><td class=sectiontableheader colspan=3 align=center.......
        
        //Pagecounter
    $content.="
<tr><td class=sectiontableheader colspan=3
 align
=left><nobr>".$pageNav->writePagesCounter()."</nobr></td></tr>";
        
        
        //TableHeader - Colnames
        $content.="
........
        
$content.="........
        $content.="
........
        
$row_class="1";
        foreach(
$highscores as $placegamescore){
            
$content.="<tr>";
            
//1st column: Rank
            
$rank_img=$mosConfig_live_site.
"/components/com_comprofiler/plugin/user/plug_cbhighscorestab/";
            switch(
$placegamescore[0]){
            case 
1:
                 
$rank_img.="gold.gif";
                 
$content.="..........
            break;
            case 2:
                 $rank_img.="
silber.gif";
                 $content.="
..........
            break;
            case 
3:
                 
$rank_img.="bronze.gif";
                 
$content.="..........
            break;
            default:
                 $rank_img.="
neutral.gif";
                 $content.="
.............
            }

            
//2nd column: Game Thumbnail, Name and Link.             .
            
.            
            .

//3rd column: Score
            
$content.="<td class='sectiontableentry".$row_class."'>
<font size=\"4\"><div align=center>"
.$placegamescore[5]."</td>";
            
$content.="</tr>";

            
//switch sectiontableentry every row
            
if($row_class=="1"$row_class="2";
            else 
$row_class="1";
        }

$content.="<tr><td class=.....".sefRelToAbs($pageNav->writePagesLinks
("index.php?option=com_comprofiler&task=userProfile&user=&Itemid=66&index=
"
._UE_CBTAB_PU_HEADER."&task=userProfile&user="
.$user->user_id."" ...";
                
        //$content.="
</table>"
        } //end if clause
        else {
           $content.= "
</table><div align=center><font size=1><b>".htmlspecialchars($HSnoentryTXT).
"
</b></font></div>";
        }
        //dont remove!!!
        $content.="
<p><font size=1><div align=center></div></font>";



    return $content;
    }

}

?> 
ohne Blätterfunktion hat es auch wunderbar funktioniert. Deswegen glaube ich, das folgende Zeile einfach falsch ist:
PHP-Code:
//Sort Array by Rank
        
array_multisort($highscores ); 
Bin ich vollkommen auf dem Holzweg, oder gibt es eine andere (richtige) Möglichkeit die Einträge zu sortieren?

Vielen Dank für eure Antworten im voraus. Bin echt über jede Hilfe Monsterdankbar

Grüße
Dope76

Geändert von dope76 (31-03-2008 um 23:55 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 31-03-2008, 22:30
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Umbrechen und Regeln lesen.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 31-03-2008, 22:33
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von tontechniker
Umbrechen und Regeln lesen.
und zwar dalli! sonst wird dir nicht geholfen. ich muss selbst bei einer auflösung von 1600x1200 kilometerweit nach rechts scrollen!

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #4 (permalink)  
Alt 31-03-2008, 23:57
dope76
 Newbie
Links : Onlinestatus : dope76 ist offline
Registriert seit: Mar 2008
Beiträge: 4
dope76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

sorry. Hoffentlich ist es jetzt besser. Hab es mal verschmälert.

Grüße
dope76
Mit Zitat antworten
  #5 (permalink)  
Alt 01-04-2008, 09:29
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

also für eine sortierfunktion sollte doch irgendwo in deinen sql-abfragen ein ORDER BY stehen, oder?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 01-04-2008, 21:24
dope76
 Newbie
Links : Onlinestatus : dope76 ist offline
Registriert seit: Mar 2008
Beiträge: 4
dope76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

wenn ich ein "Order by" in die mysql Abfragen einfüge zeigt er entweder
überhaupt keine Einträge mehr an, oder alle angezeigten Plätze sind
1.Plätze.

Wenn ich die Zeile:

PHP-Code:
array_multisort ($highscores); 
um

PHP-Code:
array_multisort ($highscoresSORT_ASC); 
oder

PHP-Code:
array_multisort ($highscoresSORT_DESC); 
erweitere, wird auch nur auf den einzelnen Seiten sortiert, aber nicht über alle Seiten.

Grüße
Dope76
Mit Zitat antworten
  #7 (permalink)  
Alt 02-04-2008, 01:03
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
wenn ich ein "Order by" in die mysql Abfragen einfüge zeigt er entweder überhaupt keine Einträge mehr an, oder alle angezeigten Plätze sind 1.Plätze.
Dann machst du etwas falsch. Zeig mal.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #8 (permalink)  
Alt 02-04-2008, 17:38
dope76
 Newbie
Links : Onlinestatus : dope76 ist offline
Registriert seit: Mar 2008
Beiträge: 4
dope76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

Wenn ich diese Zeile:

//count useres who have more point than him. this result +1 is the rank
$database->setQuery("SELECT count(*) FROM #__puarcade WHERE
gameid=".$gameidscore->gameid." AND score > "
.$gameidscore->score.";");
$rank = NULL;
$rank=$database->loadResult() + 1;

so abändere:

//count useres who have more point than him. this result +1 is the rank
$database->setQuery("SELECT count(*) FROM #__puarcade" .
"WHERE gameid=".$gameidscore->gameid." AND
score > ".$gameidscore->score."" .
" ORDER by ".$limit.";");
$rank = NULL;
$rank=$database->loadResult() + 1;

habe ich nur noch erste Plätze

Jetzt fängt es langsam an im Oberstübchen zu funken

Grüße
dope76
Mit Zitat antworten
  #9 (permalink)  
Alt 03-04-2008, 00:31
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Benutzt mal den [code]-Tag - wenn ich das richtig sehe fehlt dir ein GROUP BY platz.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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