Wie kann SUM(ed) von mehreren Tabellen ausgeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie kann SUM(ed) von mehreren Tabellen ausgeben?

    Ich hab da ein ziemliches Prob.

    Code:
    $mySQL_query = "SELECT gp.user_id, SUM(gp.general_points) , user.id, user.name, user.guild
    					FROM hell_dkp_general_points AS gp, hell_dkp_user AS user
    					WHERE gp.user_id = user.id
    					GROUP BY gp.user_id'
    					ORDER BY `SUM(gp.general_points)` DESC";
    Ich mache eine Abfrage über 2 Tables und will die general_points addieren lassen. Soweit alles ok.

    Wie kann ich die Eintrage zählen um diese für die Ausgabe zu benutzen?

    Code:
    	$mySQL_result = mysql_db_query($dbase,$mySQL_query);
    	$count = mysql_num_rows($mySQL_result);  //LINE 34
    	
    	for ($i=0;$i<$count;$i++)
    		{
    		$name = mysql_result($mySQL_result,$i,"name");
    		$guild = mysql_result($mySQL_result,$i,"guild");
    		$gp = mysql_result($mySQL_result,$i,"SUM(gp.general_points)");

    Bekomme immer eine fehlermeldung weil ich die Ergebnisse nicht zählen kann. Ich vermute starkt das es was mit dem GROUP BY zu tuen hat. bin aber nicht wirklich dahinter gekommen.

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/dkp/scores.php on line 34
    Ein blue screen ist nicht immer was schlimmes... es hängt nur davon ab wo er zu sehen ist !
    www.d-creationz.de

  • #2
    mach:

    PHP-Code:
    $mySQL_result mysql_db_query($dbase,$mySQL_query) or 
       die(
    'SQL: '.$mySQL_query.'<br />Error: '.mysql_error()); 
    dann wird dir einiges klar (hoffentlich )

    Kommentar


    • #3
      Code:
      $mySQL_query = "SELECT gp.user_id, SUM(gp.general_points)  as SGP, user.id, user.name, user.guild
      					FROM hell_dkp_general_points AS gp, hell_dkp_user AS user
      					WHERE gp.user_id = user.id
      					GROUP BY gp.user_id, user.id, user.name, user.guild
      					ORDER BY SGP DESC";
      wenn du eine aggregatfunktion, wie SUM() eine ist, verwendest und dabei musst über alle anderen Felder, die du selektierst 'ne group by funktion machen.

      ob ein order by über eine explizit aufgerufene Aggregatfunktion geht, bezweilfle ich auch.
      Daher das as SGP, dann wird nämlich nach den Ergebnissen der bereits ausgeführten funktion Sortiert.

      Kommentar


      • #4
        Vielen dank.

        ok mein denkfehler war das ich erstens nicht alles richtig grupiert habe und zweites das ich das rechnen in mysql auch noch vertiefen sollte.

        mushas gracias
        Ein blue screen ist nicht immer was schlimmes... es hängt nur davon ab wo er zu sehen ist !
        www.d-creationz.de

        Kommentar


        • #5
          ansonsten, probier doch einfach mal mit ner lokalen mysql installation und 'nem frontend, dass dir die sql Fehlermeldungen direkt ausgibt.

          sowas wie MySql Control Center... da fällt dann schon das ein oder andere auf, das sich innerhalb eines PHP Scriptes nur schlecht herausfinden lässt.

          Kommentar


          • #6
            Danke für den Tip.
            Werde das gleich mal machen.
            Arbeite zZ. mit der neusten Version von PHPmyAdmin und auch dort hat es mich schon gewundert, wie er bei Abfrage, die ja ging, diesen Gruppenwechsel gemacht hat. Deshalb war ja meine Vermutung das es was damit zu tuen hat nach dem er mich angemeckert hat das er bei Sum oder ähnlichen Opperationen in einer ORDER BY Klausel ein GROUP erwartet

            Also noch mal vielen dank für deine schnelle Hilfe und die zugehörige Erklärung.
            Ein blue screen ist nicht immer was schlimmes... es hängt nur davon ab wo er zu sehen ist !
            www.d-creationz.de

            Kommentar

            Lädt...
            X