Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 44

Thema: problem: Top10-Addon VMS1.2

  1. #31
    Erfahrener Benutzer
    Registriert seit
    13.02.2007
    Beiträge
    414
    Zitat Zitat von Tevion Beitrag anzeigen
    sauber sebmaster jetzt hab ich nur noch ein problem ^^

    Top 10 - Refjäger

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0090b1f/vms/content/intern/top10.php on line 110
    Diese Meldung hatte ich auch !

    Zitat Zitat von Sebmaster Beitrag anzeigen
    Dann mach mal:

    PHP-Code:
    $platz4 db_query('SELECT COUNT(w.uid) as anz,w.werber,u.nickname FROM '.$db_prefix.'_werberdaten AS w LEFT JOIN vms_userdaten AS u ON u.uid=w.werber WHERE w.werber!=0 GROUP BY w.werber ORDER BY COUNT(w.uid) DESC LIMIT 10'); 
    ersetzen mit:

    PHP-Code:
    $platz4 db_query('SELECT COUNT(w.uid) as anz,w.werber,u.nickname FROM '.$db_prefix.'_werberdaten AS w LEFT JOIN vms_userdaten AS u ON u.uid=w.werber WHERE w.werber!=0 GROUP BY w.werber ORDER BY COUNT(w.uid) DESC LIMIT 10') or die(mysql_error()); 
    und habe die php mit obiger Zeile upgedatet, doch jetzt kommt MELDUNG:

    Top 10 - Refjäger
    Invalid use of group function

    kann mir jemand sagen was falsch ist ? - SYSTEM mysql Vers. 4
    Mein Scripte-Shop:M shop.burglose.de
    Meine VMS1.2 Seite: burglose.de
    Meine VMS1.1 Seite: losehaufen.de

  2. #32
    Erfahrener Benutzer Avatar von Hardy
    Registriert seit
    24.01.2007
    Beiträge
    2.235
    Zitat Zitat von webkle Beitrag anzeigen
    Diese Meldung hatte ich auch !



    und habe die php mit obiger Zeile upgedatet, doch jetzt kommt MELDUNG:

    Top 10 - Refjäger
    Invalid use of group function

    kann mir jemand sagen was falsch ist ? - SYSTEM mysql Vers. 4
    GROUP BY und ORDER BY geht meines erachtens nicht zusammen...
    schmeiß mal GROUP BY w.werber raus
    Ich nutze den Firefox nur um Opera Google Chrome runterzuladen

  3. #33
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Doch, sollte schon zusammen funktionieren, nur ist MySQL 4 da etwas "zickig", was solche Bezeichner angeht:
    w.werber
    evtl. mal das "w." weglassen, kann zwar, wenn's dann funktionieren sollte, zu einem falschen Ergebnis führen, aber manchmal hilft das, könnte dann halt sein, dass man's dann im ORDER BY statement auch weglassen muss.

    GROUP BY kann man schlecht rausnehmen, da dann ja der Grundgedanke, also alle Refs EINER id zu zählen, verloren geht, so würde das dann immer nur 1,1,1,1,1,... ausgeben, und man müsste via php die Zahlen je werber id aufaddieren.
    ORDER BY ist insofern wichtig, da die Liste ja die ersten 10 absteigend anzeigen soll, anhand der Anzahl refs.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  4. #34
    Benutzer
    Registriert seit
    26.12.2006
    Beiträge
    64
    Sorry das ich mich so lange nichgt gemeldet habe, lag seit MI im Krankenhaus.
    hatte ne Harte OP aber jetzt geht es wieder.

    So ich habe den Code wie Oben gepostet geändert. jetzt zeigt der "Invalid use of group function" an ich weiß zwar nicht ob das so richtig ist aber wahrscheinlich auf die nichtvorhandenen REFS und Werber zurück zu führen ....

  5. #35
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    wie lautet der code/mysql befehl noch mal genau? also bei dem die fehler meldung "invalid use of group function" kommt
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  6. #36
    Benutzer
    Registriert seit
    26.12.2006
    Beiträge
    64
    PHP-Code:
    <?
    $rang = 1;
    $platz4 = db_query('SELECT COUNT(w.uid) as anz,w.werber,u.nickname FROM '.$db_prefix.'_werberdaten AS w LEFT JOIN vms_userdaten AS u ON u.uid=w.werber WHERE w.werber!=0 GROUP BY w.werber ORDER BY COUNT(w.uid) DESC LIMIT 10') or die(mysql_error());  
    while($nickw = mysql_fetch_array($platz4)){
    $i++;
    $row = ($i % 2 == 0) ? 0 : 1;
    echo '
    <tr class="tr_row'.$row.'">
    <td align="center">'. $rang++ .'</td>
    <td align="center"><a href="?content=/nickpage&nick='.$nickw['nickname'].'">'.$nickw["nickname"].'</a></td>
    <td align="center">'.$nickw['anz'].'</td>
    </tr>
    ';
    }
    echo '
    </table>
    ';
    foot();?>
    <?head("Copyright");?>
    <!-- Diese Addon wurde vom User adi , klammid : 248998 zusammen gebaut und alle rechte unterliegen ihm .
    Sollten sie dieses Copyright ohne Erlaubnis entfernen , erlischt ihre Lizenz und zieht rechtliche Schritte mit sich .
    Wenn sie das Copyright entfernen wollen kontacktieren sie mich im forum per pn .
    -->
    <div align="center"><font size="1">Top10 Addon &copy; by <a href="http://www.vms-tutorial.de" target="_blank">adi</a></font></div>
    <?foot();?>
    <?
    //Auslesen des traffics der vor xx sec eingelesen wurde
    file_put_contents('dynamic_cache/top10_adi.txt', ob_get_flush() );  

    }else{
     echo file_get_contents('dynamic_cache/top10_adi.txt');
    }
    ?>
    ~Zusammengeführt, by Sebmaster~

    PHP-Code:
    <?
    $rang = 1;
    $platz4 = db_query('SELECT COUNT(w.uid) as anz,w.werber,u.nickname FROM '.$db_prefix.'_werberdaten AS w LEFT JOIN vms_userdaten AS u ON u.uid=w.werber WHERE w.werber!=0 GROUP BY w.werber ORDER BY COUNT(w.uid) DESC LIMIT 10') or die(mysql_error());  
    while($nickw = mysql_fetch_array($platz4)){
    $i++;
    $row = ($i % 2 == 0) ? 0 : 1;
    echo '
    <tr class="tr_row'.$row.'">
    <td align="center">'. $rang++ .'</td>
    <td align="center"><a href="?content=/nickpage&nick='.$nickw['nickname'].'">'.$nickw["nickname"].'</a></td>
    <td align="center">'.$nickw['anz'].'</td>
    </tr>
    ';
    }
    echo '
    </table>
    ';
    foot();?>

  7. #37
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Dieser MySQL Befehl:
    Code:
    SELECT COUNT( w.uid )  AS anz, w.werber, u.nickname
    FROM vms_werberdaten AS w
    LEFT  JOIN vms_userdaten AS u ON u.uid = w.werber
    WHERE w.werber !=0
    GROUP  BY w.werber
    ORDER  BY COUNT( w.uid )  DESC 
    LIMIT 10
    Wird auf MySQL v5 korrekt ausgeführt ohne Fehlermeldung, daher wird es wohl an eurer veralteten MySQL Version liegen.

    Da ich keine alten Versionen benutze, kann ich das jetzt nicht testen, aber vielleicht gehts so?
    PHP-Code:
    $platz4 db_query('SELECT COUNT(w.uid) as anz,w.werber,u.nickname FROM '.$db_prefix.'_werberdaten AS w LEFT JOIN vms_userdaten AS u ON u.uid=w.werber WHERE w.werber!=0 GROUP BY werber ORDER BY COUNT(w.uid) DESC LIMIT 10') or die(mysql_error()); 
    MySQL 4 hat ja teilweise Probleme mit Tabellen Referenzen Alias(sen )
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  8. #38
    Benutzer
    Registriert seit
    26.12.2006
    Beiträge
    64
    hmm leider immernoch der selbe fehler

    OK wie kann ich meine PHP version auf 5 uppen ???

  9. #39
    Benutzer Avatar von SilentKiller
    Registriert seit
    10.07.2009
    Beiträge
    38
    Zitat Zitat von Sebmaster Beitrag anzeigen
    Version 4 wahrscheinlich

    Folgende Funktion in die functions.lib.php kopieren:

    PHP-Code:
    if (!function_exists('file_put_contents')) {
        function 
    file_put_contents($filename$data) {
            
    $f = @fopen($filename'w');
            if (!
    $f) {
                return 
    false;
            } else {
                
    $bytes fwrite($f$data);
                
    fclose($f);
                return 
    $bytes;
            }
        }

    Dann sollte es funktioieren.

    Mfg
    Sebmaster


    Ich wusste ja schon vorher das ich ein Übersetzungsproblem habe da ich php 4.5 fahre... Wusste auch genau das es nicht schwer zu lösen ist, aber habe nach 3 stunden php forenwälzen nur eine semi elegante version gehabt, die den fehler nur an dieser stelle per if/else behebt...

    Wenn das mal nicht elegant von Dir gelöst ist weis ich auch nicht... genau 2 Sekunden arbeit und nun frisst mein script alle file_put_content befehle obwohl es php4.5 ist....

    Flawless Victory Danke für diesen Fehlerteufelvernichter

    Jetzt brauch ich nurnoch was elegantes um die division durch null zu vermeiden, ich meine, kann ja nicht die lösung sein auf die ersten 10 Betteluser zu warten bevor das weggeht in der top 10. Die Lösung ist auch relativ simpel ich kriegs nur nocht gebacken

    Es müsste ja einfach erst dann teilen, wenn der Wert nicht null ist-

    Also sowas in der Art:

    if($bettelaufrufe == 0){ $Durchschnitt=0; }
    else { $Durchschnitt=$bettelaufrufe / $bettelverdienst; }

    Natürlich nur vom Denkansatz her... ich bin bissel plöd und kriege das nicht
    auf diese Stelle so angewendet....
    Wär natürlich noch geiler wenn man das nach Sebmasters Art in der funktions lib ändern könnte, denn dieses addon ist nicht das einzigste das unsauber auf dieser division geproggt ist, kommt oft genug irgendwo vor, wo halt die meisten Zähler am Anfang mit 0 anfangen, gibt den Fehler irre oft bei vms...

    Er müsste ja einfach nur generell bei Wert 0 eine Null als Ergebnis einsetzen, und erst wenn der Wert nicht 0 ist müsste er die division
    ausführen...

  10. #40
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    Dazu müsstest du entweder dein PHP selber kompilieren, oder den PHP Entwickerln sagen, dass man den / Operator überschreiben darf

    Da beides wohl eher nicht in Frage kommt, bleibt an sich nur die Behandlung "an Ort und Stelle":

    vorher:
    PHP-Code:
    $wert $datum1 $datum2
    nachher:
    PHP-Code:
    $wert = ($datum2!=0) ? ($datum1 $datum2) : 0
    Statt 0 kann manchmal auch 100 (Prozent bspw.) sinnvoll sein.
    Da das kein Kompiler und Interpterer nur schwer selber entscheiden koennen, bleibt an sich nur das manuelle Einabuen.

    Ist an sich nur eine verkuerzte Schreibweise für if else

    Mit einem guten Editor/IDE lässt sich sowas aber schnell in allen Dateien ändern.

    Dabei muss aber auch berücksichtigt werden, dass an manchen Stellen, sofern durch 0 geteilt wird, tatsächlich ein Fehler auftreten muss, den man nicht "umgehen" sollte!
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Ähnliche Themen

  1. Top10-addon
    Von shakirafan im Forum Support zu Addons & Erweiterungen
    Antworten: 3
    Letzter Beitrag: 20.01.2011, 17:15
  2. Top10 Addon - Nickname statt ID
    Von Maybach im Forum Support zum VMSone
    Antworten: 15
    Letzter Beitrag: 31.08.2008, 15:07
  3. Antworten: 1
    Letzter Beitrag: 11.04.2008, 19:38
  4. Verschenke Addon vms1 und vms1.2
    Von rudicarell81 im Forum Scripte
    Antworten: 3
    Letzter Beitrag: 25.02.2008, 13:57
  5. Antworten: 4
    Letzter Beitrag: 30.12.2007, 17:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •