Werte addieren

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

  • Supadog
    antwortet
    Hmm naja dann muss ich wohl doch in die Tabelle felder noch ne extra Spalte user_id einfügen - wirkt sich zwar negativ auf die Ladezeit aus , ist aber wesentlich einfach zu coden

    @Abraxax : Viel Dank für deine Hilfe , auch wenn's nicht ganz so geklappt hat

    P.S. Kennt jemand ne Seite wo die Geschichte mit JOIN ausfürhrlich und einigermaßen verständlich erklärt ist ? Also nicht gerade das Manuell von MySQL

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    $userinfo wird schon in dbconnect.php definiert und ist 100% vorhanden da es ja auch noch andere Seiten bis auf diese gibt

    Aber bei WHERE b.user_id = 1 geht's auch nicht

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    wo wird denn $userinfo[user_id] definiert?

    du kannst ja zum test mal im script

    WHERE b.user_id = 1

    schreiben. dann sollte auf jeden fall was kommen, auch wenn $userinfo nicht definiert ist.

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    PHP-Code:
    <? include("dbconnect.php");

    $sql = "SELECT    SUM(a.workers_on),
                      a.dorf_id
            FROM      felder a
                        LEFT OUTER JOIN doerfer b USING(dorf_id)
            WHERE     b.user_id = ".$userinfo[user_id]."
            GROUP BY  a.dorf_id";
    $result = mysql_query($sql) or die(mysql_error());
    $nahrung = mysql_fetch_array($result);

    print $nahrung[workers_on];




    include("footer.php"); ?>
    Das ist die ganze datei

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    mein code umfasste ja nur die query...
    was steht denn da noch so drin?

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    Na dass ich in meinem Script genau deinen Code eingefügt habe

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    Original geschrieben von Supadog
    Wenn ich halt nicht wüsste dass es dein script ist
    Habe das 1:1 bei mir rein
    wie meinst du das jetzt ...

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    Wenn ich halt nicht wüsste dass es dein script ist
    Habe das 1:1 bei mir rein

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    dann muss der fehler in deinem script liegen ...

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    komishc bei mir wird definitiv nichts (also auch kein fehler) angezeigt .
    Davor hole ich aber andere Daten aus der Datenbank und die werden angezeigt was ja bestätigen sollte dass eine Verbindung zur DB besteht

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    habs grad mal gestest und ging auf anhieb.

    PHP-Code:
    $sql "SELECT    SUM(a.workers_on),
                      a.dorf_id
            FROM      felder a
                        LEFT OUTER JOIN doerfer b USING(dorf_id)
            WHERE     b.user_id = 1
            GROUP BY  a.dorf_id"

    Code:
    ausgabe:
    
    SUM( a.workers_on )  dorf_id  
                    22        1 
                    12        5
    also sollte es auch mit dynamischer user_id gehen.
    PHP-Code:
    $sql "SELECT    SUM(a.workers_on),
                      a.dorf_id
            FROM      felder a
                        LEFT OUTER JOIN doerfer b USING(dorf_id)
            WHERE     b.user_id = "
    .$userinfo[user_id]."
            GROUP BY  a.dorf_id"

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    Code:
    #
    # Daten für Tabelle `doerfer`
    #
    
    INSERT INTO doerfer VALUES (1, 1);
    INSERT INTO doerfer VALUES (2, 5);
    INSERT INTO doerfer VALUES (3, 7);
    INSERT INTO doerfer VALUES (4, 3);
    INSERT INTO doerfer VALUES (5, 1);
    INSERT INTO doerfer VALUES (6, 1);
    
    #
    # Daten für Tabelle `felder`
    #
    
    INSERT INTO felder VALUES (2, 24);
    INSERT INTO felder VALUES (1, 22);
    INSERT INTO felder VALUES (5, 12);
    INSERT INTO felder VALUES (3, 12);
    Wenn man also hierbei nach dem $user 1 geht müsste am Ende 34 rauskommen

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    poste mal noch ein paar demodaten.

    Einen Kommentar schreiben:


  • Supadog
    antwortet
    So hier sind die Dumps:
    Code:
    CREATE TABLE doerfer (
      dorf_id int(6) NOT NULL auto_increment,
      user_id tinyint(4) NOT NULL default '0',
      PRIMARY KEY  (dorf_id)
    ) TYPE=MyISAM;
    Code:
    CREATE TABLE felder (
      dorf_id int(6) NOT NULL default '0',
      workers_on int(3) NOT NULL default '0'
    ) TYPE=MyISAM;
    Habe jetzt mal in meinen Scripten und in der Datenbank id (in doerfer) in dorf_id geändert
    Angenommen wir haben jetzt die Variable $user mit dem Wert 3 , dann sollen aus doerfer alle dorf_id's genommen werden und dann aus felder alle workers_on wo dorf_id übereinstimmt addiert und ausgegeben werden als eine Zahl
    Man bedenke dass der $user in mehreren Datensätzen in doerfer vorkommen kann.
    Zuletzt geändert von Supadog; 05.03.2003, 15:50.

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    poste mal die tabellenstrukturen BEIDER tabellen. zumindest die relevanten felder.

    und erkläre mir genau, wie du die daten haben willst.

    morgen (ähm heute) schaue ich mir das mal in ruhe an. gehe jetzt pennen...

    Einen Kommentar schreiben:

Lädt...
X