kostenloser Webspace werbefrei: lima-city


Benutzerliste

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    kann mir jemand Helfen :tongue:

    und zwar ich habe eine benutzerliste und ich will die in seitenbox einbaun

    Frage

    wie kriege die liste senkrecht, und wie kriege ich wenn die benutzerliste beschtimte anzahl zb 30 benutzer scrollen
    das die liste nicht so lang ist

    <?php
    echo "Benutzerliste\n";
    echo"<br>\n";
    echo"<br>\n";
    
    $sql = "SELECT 
                        ID, 
                        SessionID, 
                        Nickname, 
                        Letzte_Aktion 
                FROM 
                        User 
                ORDER BY 
                        Nickname ASC 
               "; 
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); 
        while ($row = mysql_fetch_assoc($result)) { 
    	  if($row['SessionID'] AND (time()-60*2 < $row['Letzte_Aktion'])) 
                $online = "green"; 
            else 
                $online = "red"; 
    	  
    	
    	
    	echo "<a href=\"profil.php?id=".$row['ID']."\" style='color:".$online."'>".$row['Nickname']."</a>\n"; 
    	?>
    	}




    Danke :lol:

    Beitrag zuletzt geändert: 13.2.2013 13:03:57 von tshaika
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m****r

    Wenn ich dich richtig verstanden habe, möchtest du ab einer bestimmten Anzahl von Benutzern, die du hast / aus der DB ausgelesen hast, dass nur ein bestimmter Teil dieser User angezeigt wird. Sagen wir 30 Benutzer sind in der DB eingetragen und die ersten 20 davon möchtest du anzeigen lassen. Dann musst du zuerst schauen wie viele du ausgelesen hast - immerhin liest du mit deiner jetzigen Query ALLE Benutzer aus, die du hast. Das tust du mit mysql_affected_rows() und schaust dann einfach ob die Anzahl > 20 liegt. Wenn dem so ist, starte eine for Schleife, mit der du nur die ersten 20 User ausgibst. Eine andere und bessere Möglichkeit wäre deine Query so anzupassen, dass direkt nur die ersten 20 User ausgelesen werden. Das erreichst du mit LIMIT. Einfach danach googeln.

    Und wie du das ganze senkrecht bekommst? Einfach <br> benutzen zwischen den einzelnen Einträgen oder was genau verstehe ich da jetzt nicht?

    EDIT: Noch der Hinweis, dass die normale MySQL Erweiterung deprecated ist seit PHP 5.5 und in (ferner) Zukunft entfernt wird, weswegen du auf MySQLi umsteigen solltest.

    Beitrag zuletzt geändert: 13.2.2013 13:16:50 von midwar
  4. h**s

    hi,

    zb so:
    <?php
    	echo '<div style="height:400px;overflow:auto;">';
    	echo '<p>Benutzerliste<br><br>';
    	
    	$sql = 'SELECT 
    			ID, 
    			SessionID, 
    			Nickname, 
    			Letzte_Aktion 
    		FROM 
    			User 
    		ORDER BY 
    			Nickname ASC
    	'; 
    	$result = mysql_query($sql) or die("<pre>\n".$sql."</pre>\n".mysql_error()); 
    	while($row=mysql_fetch_assoc($result)) { 
    		if($row['SessionID'] and (time()-60*2 < $row['Letzte_Aktion']))  {
    			$online = 'green'; 
    		}else {
    			$online = 'red'; 
    		}
    	}
    	
    	echo '<a href="profil.php?id='.$row['ID'].'" style="color:'.$online.'">'.$row['Nickname'].'</a><br>'; 
    	echo '</p>';
    	echo '</div>';
    ?>
  5. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    midwar

    nein nicht die erste 20 benutzer zeigen

    ab 20 benutzer soll seitenbox scrollen
  6. m****r

    tshaika schrieb:
    midwar

    nein nicht die erste 20 benutzer zeigen

    ab 20 benutzer soll seitenbox scrollen


    Du hast also eine Seitenbox, in der du das alles ausgibst. Dann sorge mit der CSS Eigenschaft overflow dafür, wie mit übergroßem Inhalt umgegangen werden soll, nachdem du der Seitenbox eine feste Größe (width und height) zugewiesen hast. Hast du diese 3 CSS Werte sinnvoll festgelegt, wird auch ab dem 20. Benutzer gescrollt.

    Beitrag zuletzt geändert: 13.2.2013 13:21:48 von midwar
  7. schneewitttchen

    schneewitttchen hat kostenlosen Webspace.

    zum Einschränken auf eine bestimmte Anzahl genügt ein Blick in die MySQL-Doku:
    Die LIMIT-Klausel kann zur Beschränkung der Anzahl der von der SELECT-Anweisung zurückgegebenen Datensätze verwendet werden. LIMIT nimmt ein oder zwei numerische Argumente entgegen, die (außer bei Verwendung vorbereiteter Anweisungen) beide nichtnegative Integer-Konstanten sein müssen.

    Von den beiden Argumenten gibt das erste den Versatz des ersten zurückzugebenden Datensatzes an, das zweite die maximale Anzahl zurückzugebender Datensätze. Der Versatz des ersten Datensatzes ist 0 (nicht 1):

    SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15

    Um alle Datensätze beginnend bei einem bestimmten Versatz bis zum Ende der Ergebnismenge zurückzugeben, können Sie als zweiten Parameter eine sehr große Zahl angeben. Die folgende Anweisung ruft alle Datensätze beginnend beim 96. bis zum letzten Datensatz ab:

    SELECT * FROM tbl LIMIT 95,18446744073709551615;

    Sofern nur ein Argument angegeben ist, gibt der Wert die Anzahl der Datensätze an, die beginnend beim ersten Datensatz zurückgegeben werden sollen:

    SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows


    Anders gesagt, ist LIMIT row_count äquivalent zu LIMIT 0, row_count.

    Quelle: http://dev.mysql.com/doc/refman/5.1/de/select.html
  8. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    hcms schrieb:
    hi,

    zb so:
    <?php
    	echo '<div style="height:400px;overflow:auto;">';
    	echo '<p>Benutzerliste<br><br>';
    	
    	$sql = 'SELECT 
    			ID, 
    			SessionID, 
    			Nickname, 
    			Letzte_Aktion 
    		FROM 
    			User 
    		ORDER BY 
    			Nickname ASC
    	'; 
    	$result = mysql_query($sql) or die("<pre>\n".$sql."</pre>\n".mysql_error()); 
    	while($row=mysql_fetch_assoc($result)) { 
    		if($row['SessionID'] and (time()-60*2 < $row['Letzte_Aktion']))  {
    			$online = 'green'; 
    		}else {
    			$online = 'red'; 
    		}
    	}
    	
    	echo '<a href="profil.php?id='.$row['ID'].'" style="color:'.$online.'">'.$row['Nickname'].'</a><br>'; 
    	echo '</p>';
    	echo '</div>';
    ?>


    er zeigt keine Benutzer :-o

    aber ich habe bessere idee

    kann man machen ?

    in seiten box nur die benutzer zeigen die nur Online sind ?

    :thumb:

  9. m****r

    tshaika schrieb:
    hcms schrieb:
    hi,

    zb so:
    <?php
    	echo '<div style="height:400px;overflow:auto;">';
    	echo '<p>Benutzerliste<br><br>';
    	
    	$sql = 'SELECT 
    			ID, 
    			SessionID, 
    			Nickname, 
    			Letzte_Aktion 
    		FROM 
    			User 
    		ORDER BY 
    			Nickname ASC
    	'; 
    	$result = mysql_query($sql) or die("<pre>\n".$sql."</pre>\n".mysql_error()); 
    	while($row=mysql_fetch_assoc($result)) { 
    		if($row['SessionID'] and (time()-60*2 < $row['Letzte_Aktion']))  {
    			$online = 'green'; 
    		}else {
    			$online = 'red'; 
    		}
    	}
    	
    	echo '<a href="profil.php?id='.$row['ID'].'" style="color:'.$online.'">'.$row['Nickname'].'</a><br>'; 
    	echo '</p>';
    	echo '</div>';
    ?>


    er zeigt keine Benutzer :-o

    aber ich habe bessere idee

    kann man machen ?

    in seiten box nur die benutzer zeigen die nur Online sind ?

    :thumb:



    Wenn er dir keine Benutzer ausgibt, dann hast du irgendeinen Fehler im Code. Such ihn! Hier wird dir keiner alles Stück für Stück vorkauen, bis er / sie dir eine fertige Lösung produziert hat. Das musst du schon selber machen. Ist in deiner Datenbank überhaupt ein Benutzer / mehrere hinterlegt? Steht eine Verbindung zur Datenbank? Hast du dir zum Testen ausgeben lassen, was die Query aus der DB ausliest? Hast du dir mit var_dump() die Variablen in deinem Skript zum Testen ausgeben lassen? Was hälst du von error_reporting(E_ALL);?

    Und um auf deine andere Frage zu antworten: Natürlich kannst du dir in deiner Benutzerliste auch nur diejenigen Anzeigen lassen, die Online sind. Wie das geht ist ganz einfach, du hast alle Voraussetzungen dafür bereits in deinem bisherigem Code geschaffen. In

    if($row['SessionID'] and (time()-60*2 < $row['Letzte_Aktion']))  {
                $online = 'green'; 
            }else {
                $online = 'red'; 
            }


    legst du fest wer als Online gilt und wer nicht. Benutze diese Information, um aus deiner Benutzerliste diejenigen nur anzuzeigen, die du selber als online kategorisiert hast. Logisch gesprochen:

    if($BenutzerListe[$i]["online"] == true) {
    echo $BenutzerListe[$i]["Name"]; 
    }


    So oder so benötigt das ganze ein bisschen Aufwand deinerseits - keiner wird dir hier alles Zusammensetzen.
  10. h**s

    ähhh.... ja:
    <?php
        echo '<div style="height:400px;overflow:auto;">';
        echo '<p>Aktive Benutzer<br><br>';
         
        $sql = 'SELECT 
                ID, 
                SessionID, 
                Nickname 
            FROM 
                User 
    		WHERE Letzte_Aktion>'.(time()-60*2).' 
            ORDER BY 
                Nickname ASC
        '; 
        $result = mysql_query($sql) or die("<pre>\n".$sql."</pre>\n".mysql_error()); 
        while($row=mysql_fetch_assoc($result)) { 
    		echo '<a href="profil.php?id='.$row['ID'].'" style="color:green">'.$row['Nickname'].'</a><br>'; 
        }
         
        echo '</p>';
        echo '</div>';
    ?>

    wobei das ja die benutzer sind die in den letzten 2 minuten eine aktion gemacht haben, also eventuell nicht alle die online sind...

    Beitrag zuletzt geändert: 13.2.2013 13:39:18 von hcms
  11. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    hcms


    Danke !!!!!!!!!!! :king:

    jetz noch gestrige thema noch mal mehrsprachige seite
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!