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, 22: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 (01-04-2008 um 00:55 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 31-03-2008, 23: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, 23: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 01-04-2008, 00: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, 10: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, 22: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, 02: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, 18: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, 01: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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

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