Select-Ausgabe aus einer Referrals-Tabelle

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

  • #31
    Erstmal Hallo,

    was wir gestern gemacht haben, war ja von User X die User (Direkt und Indirekt zu selectieren).

    Das gleiche will ich jetzt mit den Paidstart-Punkten machen. Das heißt jeder User hat in meiner Tabelle: logfiles eine Anzahl von Punkten. Genauso wie wir gestern die (Direkt + Indirekt) Usern von X ausselectiert haben, selctieren wir jetzt die Punkten dieser (Direkt+Indirekt) Usern aus.

    Der User X bekommt bei seinem Startaufruf 5 Punkte in der Tabelle: logfiles gutgeschrieben. Der User Y (Direkt1 von X) bekommt bei seinem Startaufruf auch 5 Punkte gutgeschrieben. Gleichzeitig bekommt der User X - 2 Punkte (da er ja Direkt1 von X ist) gutgeschrieben.

    Da dachte ich an so etwas z.B.

    //Das sind die Paidstart_Punkte des User X (der eingeloggt ist
    $query="select * from logfiles where username='$PHP_AUTH_USER'";
    $result=mysql_db_query("db",$query,$link);
    $paidstart =mysql_result($result,0,"paidstart");

    //Das sind die Paidstart_Punkte des User Y (Direkt1 von X)
    $result1=mysql_query("select SUM(paidstart/2,50) from logfiles where username='$dir1'");
    //$dir1 sind dann die User die wir ja gestern selectiert haben
    $dir1=mysql_numrows($result1);

    usw. bis zu Indirekt1.

    Verstehts DU ????
    Ist schwierig zu erklären. :-)

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

    Kommentar


    • #32
      Hi,

      ich glaube meine Erklärung von heute Nachmittag war nicht so verständlich.
      Antwort auf Deine Frage: ich gehe nur bis in 4 Ebenen tief. Bei mir gibt es nur Direkt1, Indirekt2, Indirekt3, Indirekt4.

      Ich versuche es nochmal,

      User X ist eingeloggt, er hat 500 Punkte auf seinem Konto
      Er hat 2x Direkt1 (Y,Z), 2x Indirekt2 (A,B), 1x Indirekt3 (C), 2x Indirekt4 (D,E)
      Y hat 50 Punkte, Z hat 35 Punkte - Direkt1
      A hat 30 Punkte, B hat 25 Punkte - Indirekt2
      C hat 10 Punkte - Indirekt3
      D hat 55 Punkte, E hat 95 Punkte - Indirekt4

      So, der X sieht nun in seiner Statistik

      500 Punkte //Seine eigene
      34 Punkte // von Direkt1 (gerechnet: (50+35):2,5 = 34)
      11 Punkte // von Indirekt2 (gerechnet: (30+25):5 = 11)
      2 Punkte // von Indirekt4 (gerechnet: (10):5 = 2)
      30 Punkte // von Indirekt2 (gerechnet: (55+95):5 = 30)

      Und dann ist schluß, es geht nur bis Indirekt4.

      Was noch möglich wäre, daß wenn der Direkt1 seine Startseite aufruft, daß sofort bei X die Punkte in der Tabelle gutgeschrieben werden. Aber ich glaube das ist komplizierter.

      Ich hoffe, daß es jetzt ein bißchen deutlicher wurde. :-)





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

      Kommentar


      • #33
        Hi,

        ja, jetzt ist schon klar, was du willst.
        Kann mich leider erst morgen früh drum kümmern. War heute im Streß und mach jetzt die Fliege.

        Okay, schönen Abend und bis morgen

        Kommentar


        • #34
          Danke

          also dann bis Morgen

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

          Kommentar


          • #35
            Moin,

            also, du speicherst irgendwelche Startpunkt in einer extra-Tabelle weg. Welche sind das? Nur die (steht glaube ich in einem anderen Beitrag,oder?), die er durch einen Start der Seite erhält?
            Falls ja, dann willst du dazu noch diese direkt, indirekt1-indirekt4-Punkte dazuhaben.
            Das geht eigentlich auf dem Weg, wie wir es schon angefangen haben.

            Falls du aber immer die aktuelle Gesamtzahl in dieser Starttabelle speichern willst, geht das so nicht mehr. Da weiß du ja nicht mehr, welche Punkte schon mal gezählt wurden. Da müßtest du dann anders vorgehen -> beim Anmelden oder Starten von ihm oder direkt/indirekts von ihm müssen die Punkte direkt in die Tabelle geschrieben werden.

            Zweite Variante aufwendiger. Erste haben wir schon fast.

            Was brauchst du davon? Oder habe ich dich total mißverstanden?

            Kommentar


            • #36
              Hi

              Wie gehts Dir??

              Das mit der ersten Variante trifft zu. Und zwar mit der Startseite (werde ich auch noch klein wenig Deine Hilfe brauchen) wird automatisch sein Konto in der Tabelle um 5 Punkte erhöht. Genauso wie bei allen anderen Usern auch, wenn diese Ihre Startseiten aufrufen.

              Was ich in meiner Statistik-Tabelle wiedergeben möchte ist, daß der User der eingeloggt ist, seine Punkte sowie die Punkte seiner Direkt1 - Indirekt4 sehen kann.

              OK??

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

              Kommentar


              • #37
                Hi,

                bin nach wie vor noch im Streß, anscheinend wollen alle noch kurz vor Ostern alles möglich durchbringen.

                Okay, Variante 1 ist gut. Hast also eine Tabelle, wo du die summierte Startpunkt hast, auf die dann noch die Punkte draufaddiert werden, die wir ja schon über das Skript von vorne rauskriegen.

                Sollte machbar sein, allerdings nicht jetzt, sorry. Habe noch zu tun und dann ist ja Ostern angesagt, d.h. ich werde erst am Dienstag wieder hier unterwegs sein... muß dich leider vertrösten.

                Bis dann und schöne Ostern.

                Kommentar


                • #38
                  OK,

                  ich habe in den nächsten Tagen auch Einiges vor. Also kein Problem, bis Dienstag dann.

                  Schöne Ostertage,

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

                  Kommentar


                  • #39
                    Hallihallo,

                    hat sich dein Problem mittlerweile gelöst oder ist es immer noch akut. Wenn ja, dann gib Bescheid, dann machen wir uns dran, dem Problem ein für alle mal den Gar auszumachen.

                    Bis dann

                    Kommentar


                    • #40
                      Hallo,

                      schön mal wieder von Dir zu hören.

                      Das Problem besteht leider immer noch. Würde mich freuen wenn wir es lösen könnten.

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

                      Kommentar


                      • #41
                        Hallo und guten Morgen,

                        bin heute zu Hause. Würde mich freuen wenn wir das Problem lösen könnten.

                        Hoffe und warte auf Deine Antwort,
                        Bis bald
                        ************************
                        Das Portal zum Geld verdienen
                        ************************

                        Kommentar


                        • #42
                          Moin,

                          sorry, bin irgendwie bißchen raus. Muß mir erst noch mal in ruhe alles anschauen, was wir da so hin und her geschrieben haben. Melde mich gegen abend dann....

                          Kommentar


                          • #43
                            Morgen,

                            OK.
                            Bin heute auch noch zu Hause. Könnte sein, daß ich nur heute Abend kurz nicht zu Hause bin. Werde mich aber dann melden wenn ich kurz nicht da bin.

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

                            Kommentar


                            • #44
                              Hallo,

                              so wie es aussieht hattest Du keine Zeit. Vielleicht klappst ja Morgen früh! Hätte da auch nocht ein paar Stunden Zeit.

                              Also bis dann
                              ************************
                              Das Portal zum Geld verdienen
                              ************************

                              Kommentar


                              • #45
                                Hi xaroc,

                                sorry, daß es ein bißchen gedauert hat. Aber heute morgen hatte ich mal kurz Zeit, mir in Ruhe das Problem nochmals anzuschauen und ich hoffe mit dem folgenden Code klappt es und es ist hoffentlich das, was du erreichen willst:
                                Code:
                                // ------- wer gehört direkt zum User -------
                                $result1=mysql_query("select * from referrels where referrals='$PHP_AUTH_USER'");
                                $anz1=mysql_numrows($result1); 
                                
                                // ------- Paidstart-Punkte des Users direkt holen -------
                                $paidresult=mysql_query("select * from logfiles where username='$PHP_AUTH_USER'");
                                $paidstart=mysql_result($paidresult,0,"paidstart");
                                
                                // ------- Zähler auf Null setzen -------
                                $anz_redir2=0;
                                $anz_redir3=0;
                                $anz_redir4=0;
                                $anz_redir5=0;
                                
                                // ------- Schleife über die selektierten User 1.Ordnung (direkt) --------
                                for ($i1=0;$i1<$anz1;$i1++) {
                                	$user=mysql_result($result1,$i1,"username");
                                	$result2=mysql_query("select * from referrels where referrals='$user'");
                                	$anz2=mysql_numrows($result2);
                                	$anz_redir2=$anz_redir2+$anz2;
                                	// ------- Paidstart-Punkte des Users holen und durch 2.5 teilen, dann dazuaddieren -------
                                	$paidresult2=mysql_query("select * from logfiles where username='$user");
                                	$paidstart=$paidstart+(mysql_result($paidresult2,0,"paidstart")/2.5);
                                	// ------- Schleife über die selektierten User 2.Ordnung (indirekt1) --------
                                	for ($i2=0;$i2<$anz2;$i2++) {
                                		$user2=mysql_result($result2,$i2,"username");
                                		$result3=mysql_query("select * from referrels where referrals='$user2'");
                                		$anz3=mysql_numrows($result3);
                                		$anz_redir3=$anz_redir3+$anz3;
                                		// ------- Paidstart-Punkte des Users holen und durch 5 teilen, dann dazuaddieren -------
                                		$paidresult3=mysql_query("select * from logfiles where username='$user2");
                                		$paidstart=$paidstart+(mysql_result($paidresult3,0,"paidstart")/5);
                                		// ------- Schleife über die selektierten User 3.Ordnung (indirekt2) --------
                                		for ($i3=0;$i3<$anz3;$i3++) {
                                			$user3=mysql_result($result3,$i3,"username");
                                			$result4=mysql_query("select * from referrels where referrals='$user3'");
                                			$anz4=mysql_numrows($result4);
                                			$anz_redir4=$anz_redir4+$anz4;
                                			// ------- Paidstart-Punkte des Users holen und durch 5 teilen, dann dazuaddieren -------
                                			$paidresult4=mysql_query("select * from logfiles where username='$user3");
                                			$paidstart=$paidstart+(mysql_result($paidresult4,0,"paidstart")/5);
                                			// ------- Schleife über die selektierten User 4.Ordnung (indirekt3) --------
                                			for ($i4=0;$i4<$anz4;$i4++) {
                                				$user4=mysql_result($result4,$i4,"username");
                                				$result5=mysql_query("select * from referrels where referrals='$user4'");
                                				$anz5=mysql_numrows($result4);
                                				$anz_redir5=$anz_redir5+$anz5;
                                				// ------- Paidstart-Punkte des Users holen und durch 5 teilen, dann dazuaddieren -------
                                				$paidresult5=mysql_query("select * from logfiles where username='$user4");
                                				$paidstart=$paidstart+(mysql_result($paidresult5,0,"paidstart")/5);
                                				}
                                			}
                                		}
                                	}
                                
                                // ------- Anzahl der gefundenen Referrals summieren -------
                                $gesamt=$anz1+$anz_redir2+$anz_redir3+$anz_redir4+$anz_redir5;
                                
                                // ------- Anzahl der aufsummierten Paidstart-Punkte ausgeben -------
                                echo "Paidstart-Punkte: ".$paidstart."<br><br>";
                                
                                // ------- Einzelwerte der Referrals ausgeben -------
                                echo "Direkt: ".$anz1."<br>Indirekt1: ".$anz_redir2."<br>Indirekt2: ".$anz_redir3."<br>Indirekt3: ".$anz_redir4."<br>Indirekt4: ".$anz_redir5."<br><br>Gesamt: ".$gesamt;
                                Habe den Code mal bis auf den indirekt4, also bis in die 5.Ordnung runter, ausgeweitet. Falls zuviel kannst du ja ne Schleife rausnehmen, oder erweitern. Wäre natürlich mit einer rekursiven Funktion wesentlich eleganter zu lösen gewesen, aber da das meiste vom Code schon stand, habe ich es so belassen.

                                Laß hören, ob alles okay ist oder was noch nicht stimmt.

                                Bis dann

                                Kommentar

                                Lädt...
                                X