count() bzw mysql_num_rows in while schleife ?!

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

  • count() bzw mysql_num_rows in while schleife ?!

    Hallo

    Keine ahnung ob dieses das richtige forum ist oder das mysql ... aber da es zum großteil um php geht poste ich das mal hier

    Mein Problem:

    Habe folgenden Code, der erst die "onlinetabelle" in ein array lädt und dann die daten in einer While schleife mit der "freundesliste" abgleicht.

    Mein problem ist das ich wissen möchte wieviele "treffer" er gefunden hat.

    PHP-Code:
     ,
    while(
    $temp mysql_fetch_array($query))
    {
    $onname $temp[0];
        
    $getf mysql_query("SELECT * FROM friends WHERE name = '$username' AND freundname = '$onname'");
        
    $count mysql_num_rows($getf);
        echo(
    $ergb1 || $alle");
        while(
    $da mysql_fetch_array($getf))
        {
        
    $friend $da[freundname];
        
    $temp mysql_query("SELECT * FROM $logintab WHERE name= '$friend'");
        
    $data mysql_fetch_row($temp);
        echo(
    "<font style=\"color: $data[3];\">$friend </font><br>");
        }

    Wenn ich nun die treffer zähle, gibt er mir für jeden treffer eine eins aus ...
    was ja logisch ist ...

    PHP-Code:
                     $zaehl mysql_query("SELECT count(*) FROM friends WHERE name = '$username' AND freundname = '$onname'");
                        
    $us mysql_fetch_row($zaehl);
                     
    $erg $us[0]; 

    Aber wie rechne ich das nun zusammen ? Ich würde wetten wieder mit einer schleife .. das problem ist nur das ich ja keinen Endwert weiss

    Vielleicht hat hier jemand nen lösungansatz ?!

    Grüße Bjoern

  • #2
    da du ja im php-forum gepostet hast, möchte ich erstmal deinen code was verbessern.

    zwei verschachtelte while-schleifen mit jeweils noch einem sql-query drin, ist mit sicherheit nicht gesund für den rechner.

    vom pronzip her musst du es so machen

    1. auslesen der online-user
    => array mit userids

    2. auslesen der boddylist
    => if isset($onlineusers[$row['buddy_id']]) echo online; else echo offline;


    in diesem sinne!

    Kommentar


    • #3
      So nochmal überarbeitet


      Meintest du vielleicht so in etwa ?

      PHP-Code:
      $query mysql_query("SELECT * FROM temp_online");
      while(
      $temp mysql_fetch_array($query))
      {
      $onname $temp[0];
      $getf mysql_query("SELECT * FROM friends WHERE name = '$username' AND freundname = '$onname'");
      $on mysql_fetch_row($getf);
          if (
      strtolower($onname) == $on['2'])
          {
          echo(
      "".$on['2']." ->online<br>");
          } 
      Erstmal danke für den performance tipp ... nun bleibt nur noch das zählen ... und ich habe noch immer keinen schimmer wie ich die gesamtzahl herausbekomme

      EDIT:
      Ok hat sich erledigt .. $count = 0; vor der schleife und in der schleife ein $count++; ist die lösung gewesen ...
      Zuletzt geändert von ccuser; 06.03.2004, 13:10.

      Kommentar


      • #4
        Naja, hast immer noch ne Abfrage in der While-Schleife. Macht bei 100 onlineusern ganze 101 querys, nur für die anzeige. Kann nicht die Lösung sein.

        Denk nochmal über meinen Tipp nach

        Kommentar

        Lädt...
        X