Hej,
Har et problem med updateing af info når jeg skriver noget i chatten..
- mysql_query("
- INSERT INTO `tp_chatmsg` (afsender, besked, rum, time) VALUES ('" . $afsender . "','". $besked ."','". $rum ."', NOW())
- ");
- mysql_query("
- UPDATE `tp_brugere` SET `last` = NOW() WHERE `brugernavn` = '" . $afsender . "'
- ");
Den første indsætter chatbeskeden.
Den anden sætter ny last-tid i db. datetime. Eks( 2013-08-12 18:15:58 )
Men når jeg fjerner update delen, viser den beskederne. Som den skal.
Men sætter jeg det ind igen, viser den ikke chatbeskederne.
Henter afsender ud fra $afsender = htmlspecialchars($_SESSION['brugernavn']);
Hvad kan grunden være til dette?.
1: login filen sætter denne til update.
- mysql_query("
- UPDATE `tp_brugere` SET `logtime` = NOW(), `last` = NOW()
- WHERE `brugernavn` = '" . $_SESSION['brugernavn'] . "'
- ");
Det vil sige både logtime og last bliver ens, om det så skal være sådan, ved jeg ikke.
2: log ud, der sørger jeg igen for nuller i nogen af dem samt NOW i last.
- mysql_query("
- UPDATE `tp_brugere` SET `online` = '0',`time` = '0',`chatrum` = '0',`last` = NOW()
- WHERE `brugernavn` = '" . $_SESSION['brugernavn'] . "'
- ");
Grunden til jeg vil bruge logtime og last, er for at sørge for at chatten kun viser de beskeder der er indenfor den tidsrum man har været på, hvis jeg går off, og ind igen, skal den kun vise dem som skrives imens jeg er online i den session. Og ellers skal den cleane chatten.
Eksempel i vischat delen.
- $msg = mysql_query("SELECT afsender, besked, time FROM tp_chatmsg WHERE time > '".$plast."' AND rum = '". $rumID ."' order by msgID desc");
Der henter jeg ud fra
$ptime = $vu['logtime'];
$plast = $vu['last'];
Og i online chattere, bruger jeg den her funktion til at hidden dem som ikke er aktive.
- $go = mysql_query("SELECT * FROM tp_brugere WHERE `chatrum` = '".$_GET['id']."' AND DATE_ADD(last, INTERVAL 10 MINUTE) > NOW()");
Dog er problemet med ovenstående, at jeg ikke kan få dem frem igen ved aktitvitet. Har i nogen idéer til hvordan så?.
--
Har forsøgt med at lave en test således.
- if($besked == "/1"):
- mysql_query("UPDATE tp_brugere SET last = NOW() WHERE brugernavn = '".$afsender."'");
- endif;
Skriver jeg /1 i chatten, får jeg ny last, men chatten er clean. Det jo ikke mening, der skal den så fortsætte med at vise indholdet, og sætte mig på online listen igen. Men det gør den, men ikke fortsætte med chatten, den renser den. :/
Indlæg senest redigeret d. 12.08.2013 19:50 af Bruger #17554