Avatar billede danino Nybegynder
06. september 2003 - 16:37 Der er 7 kommentarer og
1 løsning

Altid opdateret "felt" opdateret info fra mysql

Jeg har en side, hvor jeg gerne vil have at man skal kunne se hvem der er online. Jeg har et stykke kode der kigger i en mysql-database, for at se hvem der er online. Hvordan gør jeg for altid at have det sted på siden opdateret? Problemer er at jeg har en onunload event der logger folk ud, og den må ikke trigges ved at hele siden refresher f. eks. hvert sek. Ud over dette indeholder siden en del grafik, og det vil derfor ikke være smart at refreshe hele tiden... Jeg håber nogen kan hjælpe...
Hvis det kan hjælpe er koden der kigger i databasen her:
<?php

    echo "<b>Online:</b><br><br>"; //lav overskrift
    $resultat = mysql_query("select Navn from online where Online =1"); //find dem der er online
        while ($row =  mysql_fetch_array($resultat)) {
    echo $row['Navn']."\n\n"; //vis alle der er online
    echo "<br>";
    }
?>

ps. Det skal altså være noget der hele tiden viser det opdaterede felt, og ikke gentager denne kode, da den jo vil skrive samme navn igen hver gang koden køres. Altså lad os sige bruger x er online, så vil den jo skrive :

Online:

x
(der er nu gået et sek:)
x
x
(der er nu gået et sek:)
x
x
x
osv. osv.
Avatar billede taskmgr Nybegynder
06. september 2003 - 17:30 #1
Kan du bruge en iframe?

Det er umiddelbart mit eneste svar... ellers skal du vel kigge på noget javascript, som jeg desværre ik' er så kendt i.
Avatar billede danino Nybegynder
06. september 2003 - 18:04 #2
Måske... Jeg er selv ved at lege med ideen. Problemet er nu kun at få brugeren til at blive logget ud... Jeg kan jo ikke lave en onunload-event, for så vil brugeren jo blive logget ud hver gang iframen refresher ikke??
Avatar billede taskmgr Nybegynder
06. september 2003 - 18:26 #3
Ikke hvis du nøjes med at refreshe iframen
Avatar billede danino Nybegynder
06. september 2003 - 18:30 #4
Ok... det har jeg lige prøvet, og min iframe indeholder denne kode:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm=" -- PARTY3000 -- "');  // få folk til at logge ind
    header('HTTP/1.0 401 Unauthorized');
    exit;
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
<!--<meta http-equiv="refresh" content=5; url="online.php">-->
<script for=window event=onunload>
    window.open("http://www.party3000.dk/logout.php?usr=<?php echo $user?>","Logout","left=10000","top=10","height=10","width=10");
</script>
</head>

<body background="images/gfx/baggrundtilm3.jpg" bgproperties="fixed">
<?php

$link = mysql_connect("localhost", "danino", "angels"); //forbind til MySql-database
    $user = $_SERVER['PHP_AUTH_USER']; //$user bruges til at sende brugerens navn videre når der skal logges af
    mysql_select_db("danino"); //vælg database
    mysql_query("update online SET Online = 1 where Navn = '$user' "); //set Navn i MySql til online 1


    $resultat = mysql_query("select Navn from online where Online =1"); //find dem der er online
    echo "<b>Online:</b><br><br>"; //vis alle der er online
    while ($row =  mysql_fetch_array($resultat)) {
    echo $row['Navn']."\n\n";
    echo "<br>";
    }
    mysql_close($link);


?>
</body>
</html>

problemet er bare at den meget hurtigt siger at der er for mange forbindelser til mysql-databasen, og jeg tror naturligvis det er mig... Men kan nogen sige min om det er det? Altså om mysql_close($link); står et forkert sted eller på en forkert måde, så forbindelsen ikke lukker...
Avatar billede hmortensen Nybegynder
06. september 2003 - 19:58 #5
mysql_connect("localhost", "danino", "angels");

Smart ??

Behøver nok ikke at sige at du nok lige skal ændre dit password her på siden
Avatar billede danino Nybegynder
07. september 2003 - 13:24 #6
Fair nok da...
Avatar billede danino Nybegynder
08. september 2003 - 10:27 #7
Det med iframen var faktisk løsningen, så hvis taskmgr lige laver et svar, så får du pointene
Avatar billede taskmgr Nybegynder
08. september 2003 - 12:48 #8
Svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester