Avatar billede wampiro-uha Nybegynder
11. februar 2004 - 22:25 Der er 3 kommentarer og
1 løsning

Fix lidt med hensyn til chat!

Jeg bruger dette, til at hive data ud fra min database, til min chat.

Mit problem nu er, at jeg ønsker at der kun skal vises max. 100 linjer! Nu bliver den bare ved og ved så længe der er nogen som skriver.

Er der nogen der har en idé til hvorledes jeg kan løse det?
Mit problem er jo at der faktisk skal fjernes linjer fra tidligere output eller noget lign., så snart de max. 100 outputs overskrides!
Avatar billede wampiro-uha Nybegynder
11. februar 2004 - 22:25 #1
Her er koden:

<?php
header("Expires: Mon, 26 Jul 1995 05:00:00 GMT");
header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: text/html");
?>
<html>

<head>
<title>...</title>
<script type="text/javascript">
<!--
function move() { self.scrollBy(0,999999); }
//-->
</script>
</head>

<body>

<?php
mysql_connect("xxx","xxx");
mysql_select_db("xxx");

ignore_user_abort(1);

ob_implicit_flush(1);

$i = 0;
$time = time() - 10;

while(connection_status() === 0) {
$query = mysql_query("select id, user, reciever, content from chat where id > '$i' and UNIX_TIMESTAMP(date) > $time and (reciever = 0 or reciever = '$_COOKIE[chat_id]' or user = '$_COOKIE[chat_id]') and chat_room = '$_COOKIE[chat_room]' limit 0, 50");
if (mysql_num_rows($query) > 0) {
while ($array = mysql_fetch_array($query)) {

$queryUser = mysql_query("select username from users where id = '$array[user]'");
$arrayUser = mysql_fetch_array($queryUser);
$queryReciever = mysql_query("select username from users where id = '$array[reciever]'");
$arrayReciever = mysql_fetch_array($queryReciever);

if ($array['reciever'] != 0) {
if ($array['reciever'] == $_COOKIE['chat_id']) { echo "<b>From ". $arrayUser['username'] .": ". fix($array['content']) ."</b><script>move();</script><br>\n"; }
if ($array['user'] == $_COOKIE['chat_id']) { echo "<b>To ". $arrayReciever['username'] .": ". fix($array['content']) ."</b><script>move();</script><br>\n"; }
} else {
echo "<b>". $arrayUser['username'] ."</b>: ". fix($array['content']) ."<script>move();</script><br>\n"; }
flush();
$i = $array['id']; }}

sleep(1); }
exit;
?>

</body>

</html>
Avatar billede muddi Praktikant
12. februar 2004 - 07:01 #2
Mener du at der kun må være 100 chat-linier gemt i databasen, eller at du kun vil have de sidste hundrede linier?

Hvis det kun er de sidste hundrede linier du vil hente ud, så indsæt følgende i din SQL-sætning:

LIMIT 0, 100
Avatar billede wampiro-uha Nybegynder
12. februar 2004 - 18:13 #3
Jeg synes at selvom jeg smækker limit på i sql-kaldet, så fungerer det ikke i den sammenhæng jeg ønsker!

Hvis man har siddet og chattet i lang tid, så vil der stadig komme flere og flere linjer!
Og det er det som virker dumt i en chat, synes jeg!
Avatar billede wampiro-uha Nybegynder
15. februar 2004 - 18:27 #4
Hmm. Lukker!
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

IT-JOB