Select-Ausgabe aus einer Referrals-Tabelle

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

  • antwortet
    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

    Einen Kommentar schreiben:


  • antwortet
    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?




    Einen Kommentar schreiben:


  • antwortet
    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]

    Einen Kommentar schreiben:


  • antwortet
    OK,

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

    DANK

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • antwortet
    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

    Einen Kommentar schreiben:


  • antwortet
    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...

    Einen Kommentar schreiben:


  • antwortet
    Du machst mich wahnsinnig ...

    Welche Antwort meinst Du denn ??

    Einen Kommentar schreiben:


  • antwortet
    hast wohl meine Antwort verpaßt...

    Einen Kommentar schreiben:


  • antwortet
    SUPER,

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

    BITTE, BITTE

    Einen Kommentar schreiben:


  • antwortet
    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


    Einen Kommentar schreiben:


  • antwortet
    Ja!

    Einen Kommentar schreiben:


  • antwortet
    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

    Einen Kommentar schreiben:


  • antwortet
    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" ??

    Einen Kommentar schreiben:


  • antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X