Select-Ausgabe aus einer Referrals-Tabelle

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

  • Select-Ausgabe aus einer Referrals-Tabelle

    Hallo und guten Abend,

    ich hänge schon seit Tagen an einer Select-Ausgabe und bekomme es einfach nicht hin. Habe auch schon einige Foren durchstöbert, bin aber nicht fündig geworden.
    Nun hoffe ich hier eine Antwort zu finden.

    Habe eine Tabelle: 'referrals' mit :
    -----------------------
    username | referrals |
    -----------------------
    gamas | delta
    gere | beta
    admin | gamas
    admin1 | gere
    admin2 | gere
    ------------------------

    Was ich versuche ist eine Statistik hinzubekommen:
    Der User "beta" ist gerade eingeloggt und hat folgende referrals:
    ----------------------------------------------------
    1.referrals 2.referrals 3.referrals usw.
    ----------------------------------------------------
    1(gere) 2(admin1+admin2) 0
    ====================================================
    Das mit dem 1.referrals das bekomme ich hin mit:

    $query="select count(username) from referrals where referrals='$PHP_AUTH_USER'";

    $PHP_AUTH_USER ist der User wer eingeloggt ist, bei uns hier der User: beta.

    Was ich nicht hinbekomme ist, daß es mir die 2 beim 2.referrals anzeigt. D.h. der User beta hat zwei referrals.
    Wie kann ich in einer Select-ausgabe sagen, daß in der Zeile vom referral "beta" den username: "gere" gibt und der referral:gere hat 2 usern (admin1 + admin2).

    Es müßte so aussehen:
    $query="select count(username) from referrals where referrals='gere'";

    Aber "gere" kann ich ja nicht eingeben, daß es ja bei jedem User unterschiedliche Namen sind.

    Ich hoffe Ihr versteht was ich damit meine und habt eine Lösung für mich.

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

  • #2
    warum liest du nicht den Usernamen "gere" aus und machst dann einen neuen select?


    $query="select count(username),username from referrals where referrals='$PHP_AUTH_USER'";

    und dann ne Schleife über die Anzahl von Treffern -> und da kannst du dann jedesmal den "Unter-Query" ausführen. Deine Gesamtanzahl hast du trotzdem.

    Kommentar


    • #3
      Vielen Dank

      Vielen Dank für Deine Antwort,

      heute Nacht um ca 24:00 ist mir die Lösung eingefallen, wie aus dem Nichts.

      Ich habe auch zuerst den 1.referrals selectiert, und dann nochmals ein Select mit dem Resultat von dem 1. select und es funktioniert. Ich hätte Sprünge machen können.

      Aber trotzdem für Deine Hilfe.

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

      Kommentar


      • #4
        Original geschrieben von BrainBug
        warum liest du nicht den Usernamen "gere" aus und machst dann einen neuen select?


        $query="select count(username),username from referrals where referrals='$PHP_AUTH_USER'";

        und dann ne Schleife über die Anzahl von Treffern -> und da kannst du dann jedesmal den "Unter-Query" ausführen. Deine Gesamtanzahl hast du trotzdem.

        Ich muß nochmals um Deine Hilfe bitten.
        Ich habe mich zu früh gefreut.
        Es funktioniert leider nur soweit, daß wenn das Resultat 3 User sind, und ich nochmals ein select mit dem Resultat mache bringt er mir nur das Resultat von dem 1.User und nicht von alle 3 User. Kannst Du mal ein Blick auf das Script werfen ??:

        $query="select username from referrals where referrals='$PHP_AUTH_USER'";
        $result=@mysql_db_query("$db",$query,$link);
        $dir1=@mysql_result($result,"dir1");
        $query="select count(username) from referrals where referrals='$dir1'";
        $result=@mysql_db_query("$db",$query,$link);
        $indirekt2 =@mysql_result($result,"indirekt2");

        Das Resultat von $dir1 sind 3 User.(soweit OK) Aber dann das Resultat von $indirekt2 kann er leider nur das Resultat von dem 1.User anzeigen.

        Kannst Du mir einen Tipp geben ?

        Danke

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

        Kommentar


        • #5
          für Oracle würde es eine feine Lösung geben. Aber du mußt sowieso nur eine kleine Schleife um deine zweite Abfrage bauen.

          $query="select username from referrals where referrals='$PHP_AUTH_USER'";
          $result=@mysql_db_query("$db",$query,$link);
          $dir1=@mysql_result($result,"dir1");
          $query="select count(username) as anzahl,* from referrals where referrals='$dir1'";
          $result=@mysql_db_query("$db",$query,$link);
          $anzahl_der_jetzigen_user=mysql_result($result,0,"anzahl");

          for ($i=0;$i<$anzahl_der_jetzigen_user;$i++) {
          $indirekt2 =@mysql_result($result,$i,"indirekt2");
          }

          müßte schon reichen. Du mußt aber auch in deinem zweiten Select nicht nur die Anzahl counten, sondern auch den eigentlichen Inhalt selektieren -> mit *

          Kommentar


          • #6
            Nochmals Hilfe, Hilfe

            Hallo,

            vielen Dank für Deine schnelle Hilfe, aber leider funktioniert irgendetwas nicht, denn ich erhalte kein Resultat.(er bringt aber auch kein Fehler)
            Bei Deiner Schleife habe ich alles nochmals überpüft und kann kein Fehler finden. Aber etwas passt nocht nicht ganz.

            Wäre Dir sehr dankbar wenn Du mir nochmals helfen würdest.

            Die Ausgabe als echo ist doch $indirekt2, ODER?

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

            Kommentar


            • #7
              ja mei:

              $query="select username from referrals where referrals='$PHP_AUTH_USER'";
              $result= mysql_db_query($db,$query,$link);
              $dir1= mysql_result($result,"dir1");
              $query="select count(username) as anzahl,* from referrals where referrals='$dir1'";
              $result= mysql_db_query($db,$query,$link);
              $anzahl_der_jetzigen_user= mysql_result($result,0,"anzahl");

              echo "Anzahl Datensätze: ".$anzahl_der_jetzigen_user;
              for ($i=0;$i<$anzahl_der_jetzigen_user;$i++) {
              $indirekt2 = mysql_result($result,$i,"indirekt2");
              echo $indirekt2;
              }

              gibt es auch das Feld "indirekt2" ??

              Kommentar


              • #8
                SORRY, SORRY,

                es funktioniert leider immer noch nicht. Hier mein Script:

                $query="select count(username) from referrals where referrals='$PHP_AUTH_USER'";
                $result=@mysql_db_query("$db",$query,$link);
                $direkt1 =@mysql_result($result,"direkt1");
                $query="select username from referrals where referrals='$PHP_AUTH_USER'";
                $result=@mysql_db_query("$db",$query,$link);
                $dir1=@mysql_result($result,"dir1");
                $query="select count(username) as anzahl,* from referrals where referrals='$dir1'";
                $result=@mysql_db_query("$db",$query,$link);
                $anzahl_der_jetzigen_user=mysql_result($result,0,"anzahl");

                for ($i=0;$i<$anzahl_der_jetzigen_user;$i++) {
                $indirekt2 =@mysql_result($result,$i,"indirekt2");
                }

                Und dann habe ich eine Tabelle mit den Ausgaben:

                <td width="100"><font face="Arial"><center><? echo ($direkt1) ?></font></td>
                <td width="100"><font face="Arial"><center><? echo ($indirekt2) ?></font></td>
                <td width="100"><font face="Arial"><center><? echo ($indirekt3) ?></font></td>
                <td width="100"><font face="Arial"><center><? echo ($indirekt4) ?></font></td>
                <td width="100"><font face="Arial"><center><? echo ($direkt1+$indirekt2+$indirekt3+$indirekt4) ?></font></td>


                Siehts Du irgendetwas?

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

                Kommentar


                • #9
                  Ja!

                  Kommentar


                  • #10
                    Okay, okay, ich sag dir auch was:

                    du gibst irgendwelche Variablen aus, die du nie ausgelesen hast.
                    Lösung:

                    $query="select count(username) from referrals where referrals='$PHP_AUTH_USER'";
                    $result=mysql_db_query("$db",$query,$link);
                    $direkt1 =mysql_result($result,"direkt1");
                    $query="select username from referrals where referrals='$PHP_AUTH_USER'";
                    $result=mysql_db_query("$db",$query,$link);
                    $dir1=mysql_result($result,"dir1");
                    $query="select count(username) as anzahl,* from referrals where referrals='$dir1'";
                    $result=mysql_db_query("$db",$query,$link);
                    $anzahl_der_jetzigen_user=mysql_result($result,0,"anzahl");

                    for ($i=0;$i<$anzahl_der_jetzigen_user;$i++) {
                    $indirekt2[$i] =mysql_result($result,$i,"indirekt2");
                    }

                    Und dann habe ich eine Tabelle mit den Ausgaben:

                    <td width="100"><font face="Arial"><center><? echo ($direkt1) ?></font></td>
                    <td width="100"><font face="Arial"><center><? echo ($indirekt2[0]) ?></font></td>
                    <td width="100"><font face="Arial"><center><? echo ($indirekt2[1]) ?></font></td>
                    <td width="100"><font face="Arial"><center><? echo ($indirekt2[2]) ?></font></td>
                    <td width="100"><font face="Arial"><center><? echo ($direkt1+$indirekt2[0]+$indirekt2[1]+$indirekt[2]) ?></font></td>

                    so kannst du auch die Ausgabe über eine Schleife machen und immer fein das Array rausechoen.

                    for ($i=0;$i<$anzahl_der_jetzigen_user;$i++) {
                    echo "<td width=\"100\"><font face=\"Arial\"><center>".$direkt2[$i]."</font></td>";
                    }

                    du kannst auch ruhigen Gewissens die Variable $anzahl_der_jetzigen_user bißchen kürzer benennen


                    Kommentar


                    • #11
                      SUPER,

                      Wäre es auch möglich mir zu sagen was ????

                      BITTE, BITTE
                      ************************
                      Das Portal zum Geld verdienen
                      ************************

                      Kommentar


                      • #12
                        hast wohl meine Antwort verpaßt...

                        Kommentar


                        • #13
                          Du machst mich wahnsinnig ...

                          Welche Antwort meinst Du denn ??
                          ************************
                          Das Portal zum Geld verdienen
                          ************************

                          Kommentar


                          • #14
                            he, kannst du meine Antwort nicht lesen? Vielleicht mal aktualisieren -> steht als nächster Eintrag hinter meinem "Ja"-Eintrag. Kannst DU denn SEHEN?

                            Die Änderungen sind nicht wahnsinnig aufällig, sind aber da...

                            Kommentar


                            • #15
                              OK, habe die Antwort gefunden,

                              habe alles genauso wie Du geschrieben hast geändert, funzt aber immer noch nicht.
                              Entweder bin ich blöd, oder ich bin blöd.
                              Welche Variante gefällt Dir??

                              Ich weiß nicht was ich noch tun soll. Könntest Du mir vielleicht dein Kopf kurz per Post herschicken?

                              Die "direkt1" Zahl bringt er ja, nur die indirekt2 nicht.

                              Hast Du mir noch einen Tipp.

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

                              Kommentar

                              Lädt...
                              X