ausgabe sotieren nach online user

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

  • ausgabe sotieren nach online user

    Hi !

    Ich habe 2 Tabellen, eine online user und eine gesamt user ! Nun möchte ich gerne, das die user die online sind als erstes angezeigt werden !
    Ich versuche die online user von den gesamt usern abzuziehen, aber wie ???



    PHP-Code:
    <?

         $anzahl = "SELECT  * FROM dateuser  WHERE  status='a'  order by user ";
           $resultb = mysql_query($anzahl) or die("Anfrage fehlgeschlagen: " . mysql_error());


     $online = "SELECT * FROM dateonline ";
           $online2 = mysql_query($online) or die("Anfrage fehlgeschlagen: " . mysql_error());
             $anzahl_online = count($online2);

         
       echo "<table align = center>";

       echo "<tr>";
       
      
       
    $a = 0;  


    while($eintrag= mysql_fetch_array($resultb)) {



       while($anzahl_online > 0) {

      
          $username = $online2['user'];
      
      
      
       echo "<td>";
       echo "<img src=../auktion_bilder/$eintrag[bildurl] width=100 align='center' height=75 border=1>";
      
           
        
           
          echo "<p>";
          echo "$eintrag[user]".","."$eintrag[alt] ".Jahre ;
          echo "</p>";

         
            
               
                echo "<p>";
                echo "$eintrag[stadt]".","."$eintrag[bezirk] ";
                echo "</p>";
              
            
                             
                        
                        echo "<p>";
                        echo "$eintrag[lebensstatus] ";
                        echo "</p>";
                       
                         
                         
                         echo "<p>";
                        include("../inc/check_user_online.php");
                        echo "</p>";
                                       
                    
                     $a++;
                         
                              if ($a % 5 == 0) { 
                                 
                                  echo "</td>";    
                                  echo "</tr>";
                              }                    
                                           
        
        $anzahl_online -= 1; 
        }                      
                                                       
                             
    }

  • #2
    sind die tabellen miteinander verknüpft, z.b. identische namen? wenn ja, dann kannst du das mit einem left join und order by lösen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      sind die tabellen miteinander verknüpft, z.b. identische namen? wenn ja, dann kannst du das mit einem left join und order by lösen.

      gruß
      peter
      sie haben den identischen Usernamen, aber wie kriege ich die online user als erstes angezeigt ?

      Kommentar


      • #4
        zum thema left join schau dir das mal an und dann brauchst du nur am ende ein
        PHP-Code:
        ORDER BY dateonline.user 
        wenn deine tabelle und die spalte so heißen.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Ich habe 2 Tabellen, eine online user und eine gesamt user ! Nun möchte ich gerne, das die user die online sind als erstes angezeigt werden !
          Ich versuche die online user von den gesamt usern abzuziehen, aber wie ???
          Hast du denn auch schon eine Methode, die die inaktiven User aus deiner online Tabelle wieder löscht? Wenn nicht, frage ich mich, warum du zwei Tabellen hast...

          Gruß,
          php_jan
          Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

          Kommentar


          • #6
            Original geschrieben von Kropff
            zum thema left join schau dir das mal an und dann brauchst du nur am ende ein
            PHP-Code:
            ORDER BY dateonline.user 
            wenn deine tabelle und die spalte so heißen.

            gruß
            peter
            jetzt gibt er mir alle als online user aus !

            $anzahl ="SELECT du.user, du.bild, du.alt, du.bezirk, du.stadt, du.lebensstatus, do.user
            FROM dateuser du LEFT JOIN dateonline do ON du.user=do.user where du.status = 'a'
            ORDER BY do.user";
            $resultb = mysql_query($anzahl) or die("Anfrage fehlgeschlagen: " . mysql_error());

            Kommentar


            • #7
              Ich habe da mal etwas ausprobiert... ich bin heute Abend leider nicht in der Lage es in deine Tabellenstruktur zur transferieren ;-)

              PHP-Code:
               CREATE TABLE user (user_id int(11auto_increment primary keyname varchar(250));
              Query OK0 rows affected (0.09 sec)

              mysqlCREATE TABLE user_online (user_id int(11), name varchar(250));                                                                                                    

              mysqlInsert INTO user(nameVALUES('jan');
              Query OK1 row affected (0.01 sec)

              mysqlInsert INTO user(nameVALUES('peter');
              Query OK1 row affected (0.00 sec)

              mysqlInsert INTO user(nameVALUES('du');
              Query OK1 row affected (0.00 sec)

              mysqlInsert INTO user_online(user_id,nameVALUES(3,'du');
              Query OK1 row affected (0.00 sec)


              mysqlSelect FROM user;
              +---------+--------+
              user_id name   |
              +---------+--------+
              |       
              jan    |
              |       
              peter  |
              |       
              du     |
              +---------+--------+
              3 rows in set (0.00 sec)

              mysqlSelect FROM user_online;
              +---------+------+
              user_id name |
              +---------+------+
              |       
              du   |
              +---------+------+
              1 row in set (0.00 sec)

              mysqlSelect user.name,user_online.name FROM user LEFT JOIN
               user_online ON user_online
              .user_id=user.user_id ORDER BY user.name;
              +--------+------+
              name   name |
              +--------+------+
              du     du   |
              jan    NULL |
              perter NULL |
              +--------+------+
              3 rows in set (0.00 sec
              die Namen, die Null haben sind dann nicht online...
              Aber ich denke das Prinzip eines Left Joins wird klarer...
              Zuletzt geändert von php_jan; 08.12.2005, 12:30.
              Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

              Kommentar


              • #8
                So ist es glaube ich in PHP besser handzuhaben... Wenn status = 0 ist der user eben offline!

                PHP-Code:
                 Select user.name,IFNULL(user_online.user_id,0)AS status FROM user LEFT JOIN user_online ON user_online.user_id=user.user_id ORDER BY user.name;
                +--------+--------+
                name   status |
                +--------+--------+
                du     |      |
                jan    |      |
                peter  |      |
                x      |      |
                +--------+--------+
                4 rows in set (0.03 sec)

                mysql
                Deinen Status:
                where du.status = 'a'

                brauchst du also nicht...
                Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

                Kommentar


                • #9
                  Original geschrieben von php_jan
                  So ist es glaube ich in PHP besser handzuhaben... Wenn status = 0 ist der user eben offline!

                  PHP-Code:
                   Select user.name,IFNULL(user_online.user_id,0)AS status FROM user LEFT JOIN user_online ON user_online.user_id=user.user_id ORDER BY user.name;
                  +--------+--------+
                  name   status |
                  +--------+--------+
                  du     |      |
                  jan    |      |
                  peter  |      |
                  x      |      |
                  +--------+--------+
                  4 rows in set (0.03 sec)

                  mysql
                  Deinen Status:
                  where du.status = 'a'

                  brauchst du also nicht...


                  Vielen Dank !!!!!!!

                  Es klappt !!!

                  Kommentar

                  Lädt...
                  X