Select-Ausgabe aus einer Referrals-Tabelle

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

  • #16
    Sorry, muß weg. Melde mich morgen früh wieder... halte durch...

    Kommentar


    • #17
      OK,

      aber bin leider bei der Arbeit, komme um ca. 15:00 dann.

      DANK
      ************************
      Das Portal zum Geld verdienen
      ************************

      Kommentar


      • #18
        Moin erstmal,

        also, hier nochmals der Code, wieder bißchen verändert:

        // hier der Query für User direkt für Anzahl und Name
        $query= "select * from referrals where referrals='$PHP_AUTH_USER'";
        $result= mysql_db_query($db,$query,$link);

        // hier die Anzahl holen
        $direkt1= mysql_numrows($result);

        // hier den Namen holen (davon ausgehend, daß nur ein Treffer!!)
        $dir1= mysql_result($result,0,"dir1");

        // jetzt schauen, was als User indirekt
        $query="select * from referrals where referrals='$dir1'";
        $result2= mysql_db_query($db,$query,$link);

        // Anzahl der Treffer für indirekt
        $anz= mysql_numrows($result2);

        // hier alle Treffer Usernamen in Array ablegen
        for ($i=0;$i<$anz;$i++) {
        $indirekt2[$i] = mysql_result($result2,$i,"indirekt2");
        }


        // Ausgabe als HTML
        <td width="100"><font face="Arial"><center><? echo ($direkt1) ?></font></td>

        // Schleife über Array
        <? for ($i=0;$i<count($indirekt2);$i++) { ?>
        <td width="100"><font face="Arial"><center><? echo $indirekt2[$i];?></font></td>
        <? } ?>

        // keine Ahnung, was du hier ausgibts, aber okay...
        <td width="100"><font face="Arial"><center><? echo ($direkt1+$indirekt2[0]+$indirekt2[1]+$indirekt[2]) ?></font></td>

        So, jetzt müßte es wirklich funktionieren. Hatte noch einen Schreibfehler bei der Ausgabe des Arrays im alten Code und die DB-Abfrage sind jetzt richtig. Und auch kürzer. Jetzt bin ich gespannt, muß ja bis heute abend warten
        naja, schreib mal gleich, was geht...


        P.S.: Mein Gott, was arbeitest du denn, daß du schon um 15h fertig bist????

        [Editiert von BrainBug am 10-04-2001 um 08:30]

        Kommentar


        • #19
          Hallo,

          als erstes Danke, daß DU mich nicht vergessen hast.
          Ich arbeite 35h die Woche, 7h am Tag, deshalb um ca. 15:00 schon Feierabend (wenn ich es schaffe um 7:00 anzufangen). Wir haben auch Gleitzeit, deshalb verleitet es mich immmer Morgens erst um ca. 7:30 oder sogar 8:00 anzufangen.

          Leider funktioniert das immer noch nicht. Wenn ich ganz genau so mache wie Du sagst bekomme ich folgende Fehler:

          dir1 not found in MySQL result index 3 in ..... on line 57

          indirekt2 not found in MySQL result index 4 in .... on line 65

          Dir1 und indirekt2 gibt es nicht in meiner MYSQL-Tabelle, daß waren ja nur Namen von mir damit ich ein Zwischenresultat bekomme. (?!?)

          Wenn ich ändere von
          $dir1=mysql_result($result,0,"dir1");
          in
          $dir1=@mysql_result($result,0,"dir1");

          Dann bringt er kein Fehler mehr, aber er bringt auch keine Zahl.

          Wenn ich noch ändere von:
          $query="select * from referrals where referrals='$dir1'";
          in
          $query="select count(username) from referrals AS anz,* where referrals='$dir1'"; (wie Du mich ja gestern gelehrt hast)

          Dann bringt er die Zahl 0. (immerhin ein Anfang). Er sollte aber die Zahl 7 bringen, dann wäre ich HAPPY.

          Kannst Du verstehen, was ich meine?




          ************************
          Das Portal zum Geld verdienen
          ************************

          Kommentar


          • #20
            STOP!

            Das andere war genau richtig. Eben das mit den Fehlermeldungen (mit einem @ vor einem Funktionsaufruf unterdrückst du die Fehlermeldung).

            Also wieder zurück zu Variante von heute morgen.
            Und du mußt natürlich ( hab ich auch schon mehrmals nachgefragt ) die richtigen Feldnamen bei den mysql_result-Aufrufen einsetzen -> wenn dein Feld in der DB z.B. "username" heisst, dann mußt du auch mysql_result($result,0,"username") einlesen. Wenn es "dir1" oder "indirekt2" als Felder nicht gibt, dann mußt du die durch die richtigen Feldname ersetzen.

            Also, nochmal meine vermutete Variante, davon ausgehend, daß die Felder "username" und "referrals" heissen:

            // hier der Query für User direkt für Anzahl und Name
            $query= "select * from referrals where referrals='$PHP_AUTH_USER'";
            $result= mysql_db_query($db,$query,$link);

            // hier die Anzahl holen
            $direkt1= mysql_numrows($result);

            // hier den Namen holen (davon ausgehend, daß nur ein Treffer!!)
            $dir1= mysql_result($result,0,"username");

            // jetzt schauen, was als User indirekt
            $query="select * from referrals where referrals='$dir1'";
            $result2= mysql_db_query($db,$query,$link);

            // Anzahl der Treffer für indirekt
            $anz= mysql_numrows($result2);

            // hier alle Treffer Usernamen in Array ablegen
            for ($i=0;$i<$anz;$i++) {
            $indirekt2[$i] = mysql_result($result2,$i,"username");
            }

            so, jetzt klappt's. Wehe, wenn nicht

            Kommentar


            • #21
              Darf ich mich eigentlich noch an Dich wenden ?????
              Hast Du noch Geduld mit mir??

              Es funktioniert immer noch nicht.

              Ich glaube wir sollten nochmals von vorne anfangen.

              Wahrscheinlich hast Du schon bemerkt was ich mit der Referrals-Tabelle machen will.

              Der User logt sich ein und kann seine Statistik abfragen in einer Tabelle:

              Statistik |Sie selbst | Direkt 1.| Indirekt 2.| Indirekt 3. Indirekt 4.| Gesamt |
              Referrals | . | 3 | 4 | 0 | 0 | 7 |
              Paid-Start |50 | 0 | 0 | 0 | 0 |50 |
              PaidE-Mail |20 | 0 | 0 | 0 | 0 |20 |
              PaidKlick |20 | 0 | 0 | 0 | 0 |20 |
              Gesamt 04/2001| 90| 0| 0 |0 |0 |90 |

              Meine Tabelle in MYQSL heißt referrals, da gibt es eine Spalte mit Username und eine mit Referrals.

              Jetzt möchte ich, daß wenn der User X eingeloggt ist, sieht er in seiner Tabelle, 3 Direkt1, 4 Indirekt2, 0 Indirekt3, 0 Indirekt4, Gesamt 7 Referalls.

              Das heißt, es gibt ein X-User der sich als Referrals bei über den Y-User anmeldet. Der Z-User meldet sich über den X-User an. => Y-User hat 1.Direkt (X) und 1.Indirekt (Z).
              Du verstehen?

              Danke für den Tipp mit @ (Unterdrückung der Fehlermeldung).

              Hast Du einen RAT für mich BLÖDIAN ?





              ************************
              Das Portal zum Geld verdienen
              ************************

              Kommentar


              • #22
                $result1=mysql_query("select * from tabelle where referrals='$PHP_AUTH_USER'");
                $anz1=mysql_numrows($result1);

                $anz_redir2=0;
                $anz_redir3=0;
                for ($i1=0;$i1<$anz1;$i1++) {
                $user=mysql_result($result1,$i1,"username");
                $result2=mysql_query("select * from tabelle where refarrals='$user'");
                $anz2=mysql_numrows($result2);
                $anz_redir2=$anz_redir2+$anz2;
                for ($i2=0;$i2<$anz2;$i2++) {
                $user2=mysql_result($result2,$i2,"username");
                $result3=mysql_query("select * from tabelle where refarrals='$user2'");
                $anz3=mysql_numrows($result3);
                $anz_redir3=$anz_redir3+$anz3;
                }
                }

                $gesamt=$anz1+$anz_redir2+$anz_redir3;

                echo "Direkt: ".$anz1." indirekt1: ".$anz_redir2." indirekt2: ".$anz_redir3." Gesamt: ".$gesamt;


                falls du es merkst -> hier handelt es sich um eine rekursive Variante der Abfrage -> wenn du x-fach das runterbrechen willst, mußt du das als Funktion machen, die dann rekursiv aufgerufen wird. Falls nötig, kann ich dir das zeigen, aber erstmal schauen, ob das überhaupt funktioniert. Es werden nur die Anzahlen rausgezogen, nicht die usernamen!

                Den Select von letztens mit "count(username),*" kannst du vergessen. Der geht gar nicht, da das ein Mix ist.

                Kommentar


                • #23

                  was willst Du jetz von mir hören ?????





                  ************************
                  Das Portal zum Geld verdienen
                  ************************

                  Kommentar


                  • #24
                    HALLO, HALLO
                    ************************
                    Das Portal zum Geld verdienen
                    ************************

                    Kommentar


                    • #25
                      Hä? Was heißt hier HalloHallo? und was bedeutet "was willst du von mir hören?"

                      Hast du meinen Vorschlag ausprobiert? Geht's? Oder nicht?

                      Kommentar


                      • #26
                        Ich dachte schon Du bist sauer auf mich.
                        Mit was willst Du von mir hören, meinte ich ein "es geht" oder "es geht nicht".
                        Ich glaube ein "geht nicht" könntest Du nicht mehr verkraften.

                        ES GEHT, ES GEHT, ES GEHT, ES GEHT.

                        Ich mußte nur noch an deinem Code was ändern:
                        Anstatt tabelle habe ich referrels (so heißt auch meine Tabelle), eingetragen und Dein "refarrals" habe ich in "referrals" geändert. Und schwupdiwup läufts.

                        Habe auch noch den 4.Indirekt hinzugefügt, den $anz_redir4.

                        Wie kann ich Dir nur danken ? Du hast mir sehr geholfen, hätte es alleine nie geschafft.
                        Woher kennst Du so gut Mysql ?? Würde gerne noch vieles von Dir lernen.
                        Ich hätte auch schon eigentlich das nächste Problem. Aber nein, ich kann nicht mehr von Dir verlangen.

                        Nochmals DANKE
                        Würde mich auf ein baldiges Treffen freuen.

                        Bis bald
                        XAROC
                        ************************
                        Das Portal zum Geld verdienen
                        ************************

                        Kommentar


                        • #27


                          freut mich auch riesig, daß es klappt.
                          Und immer her mit den Problemen und Fragen. Beantworte ich gerne, zumindest wenn ich dazu was weiß

                          außerdem mache ich das hier auch nicht zum reinen Zeitvertreib. Ich schau mir an, was die anderen so denken und sagen. Und außerdem bringt es mich weiter, wenn ich mir über solche Probleme Gedanken mache. Mal was nachschlagen oder im Netz schauen.

                          Okay, bis zum nächsten mal

                          Kommentar


                          • #28
                            OK

                            bis zum nächsten Mal.
                            ************************
                            Das Portal zum Geld verdienen
                            ************************

                            Kommentar


                            • #29
                              Hallo BrainBug, Guten Morgen


                              da Du Dich schon so gut mit meinen Daten auskennst, würde ich mich freuen, wenn Du mir bei meinem nächsten Schritt weiterhilfts. Wenn Du keine Lust mehr hast, bitte einfach nur sagen.

                              Ich habe doch jetzt die Referrals ermittelt: Direkt1, Indirekt2, Indirekt3 und Indirekt4.

                              Jeder der User hat in meiner "logfiles" Tabelle Punkte angesammelt, die in der Statistik-Tabelle auch ausgegeben werden sollen.

                              Der User X hat 50 Punkte, der User Y hat 40 Punkte, der User Z hat 80 Punkte. Das gleiche Beispiel von heute Mittag: X ist Referrals von Y, und Z von X. Das heißt, daß in Direkt1 steht die Summe der Punkte von seinen Direkt1 Usern in dem Feld von Indirekt2 steht die Summe der Punkte von seinen Indirekt2 Usern usw.
                              Ich will aber noch tiefer gehen, und zwar die Direkt1, Indirekt2 usw. erhalten nur einen Teil der Punkte, die die User ja tatsächlichen an Punkte haben.

                              Ich hoffe Du verstehts mich, und ich hoffe auch ich verlange nicht zuviel.

                              Kann ich IRGENDWIE die Resultate von Deinem SUPER-CODE von heute Mittag verwenden?

                              Aber ich bin mir ganz sicher, daß Du mir da eine Lösung hast. Ich würde mich auf eine Antwort Morgen Mittag freuen.

                              Bis dann
                              ************************
                              Das Portal zum Geld verdienen
                              ************************

                              Kommentar


                              • #30
                                Leider kann ich dir heute morgen noch keine Antwort geben, da ich dein Ansinnen nicht ganz verstehe

                                Hab eigentlich alles verstanden... bis auf den großen Absatz.
                                Wieso in die Tiefe? WAS bedeutet denn das? WIESO enthält Direkt1 usw. nur einen Teil der Punkte?

                                Wenn du jetzt User X hast und schaust, wer X als sein Direkteintrag hat und da dann wiederum alle User (Y,Z etc.) rausholst und da wiederum schaust, wer diese als Direkteintrag hat, dann hast du doch, wenn du alles zusammenzählst, alle die mit X zu tun haben- direkt und indirekt.
                                Ist ja im Prinzip nix anderes als eine Baumstruktur (z.B. bei Navigation oft benutzt) mit Vaterknoten und Kindern.

                                Naja, egal, verklicker mir doch nochmal (auch an einem durchgängigen Zahlenbeispiel), was du machen willst...

                                P.S.: Willst du vielleicht nicht nur bis Indirekt4, sondern so tief, wie es eben in die Tiefe geht? Wenn ja, dann ja, d.h. das ist machbar. Müssen wir über eine rekursive Funktion lösen. Kein Problem, aber sag Bescheid, ob es das ist, was du willst...

                                Kommentar

                                Lädt...
                                X