In je javascript staat data(timestamp), maar het data-attribuut heb je data-time genoemd, dus het moet data(time) zijn.
Kleine Vragen Topic #4
Lennard schreef:Ja true inderdaad, ids zijn ook oplopend. En wél uniek.Of je kan alleen nieuwe berichten returnen in data.Eerdere citaten tonen
Jessee schreef:Je kan de hele chat vervangen (wat kut is en meer werk voor dom)
Wat je doet is, bij die get geef je timestamp mee van laatste bericht in de chatbox.
Alle berichten daarboven returnt ie dan in data en dat append je dan.Je kunt beter met een ID werken of met een timestamp - 1 seconde, anders kom je in de knoei als er 2 berichten op 1 timestamp zijn verstuurd en er maar 1 naar de client is verzonden.
Good catch

JS:
HTML:
PHP
Er gebeurt iets heel raars. ik wacht 3 seconden
Dan komt:
ID 5 komt 4x
ID 4 komt 3x
ID 2 komt 2x
ID 1 komt 1x
in meldingen div
setInterval(function () {
var timestamp = $(#meldingen div:last).data(time);
$.get("includes/show-meldingen.php", { timestamp: timestamp }, function (data) {
$("#meldingen").append(data);//insert the new messages into a div in your html
});
}, 3000); HTML:
<div data-time="[COLOR= #0000BB]<?php[/COLOR] [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$fetchMeldingen[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]];[/COLOR] ?>"></div> PHP
$getMeldingen = $db->query("SELECT * FROM meldingen WHERE timestamp > ".$db->real_escape_string($_GET[timestamp])." ORDER BY timestamp DESC LIMIT 10");
while($fetchMeldingen = $getMeldingen->fetch_array()){ Er gebeurt iets heel raars. ik wacht 3 seconden
Dan komt:
ID 5 komt 4x
ID 4 komt 3x
ID 2 komt 2x
ID 1 komt 1x
in meldingen div
Jessee schreef:Oke heb ik gedaan? Nu krijg ik nog steeds het zelfde zoals 1 reactie boven deze van mijBouw het eerst even om naar id zoals @lennard zei.
Klopt dit?
$getMeldingen = $db->query("SELECT * FROM meldingen WHERE id > ".$db->real_escape_string($_GET[id])." ORDER BY timestamp DESC LIMIT 10");
while($fetchMeldingen = $getMeldingen->fetch_array()){ ja, al kan je ook order by id doen. Is iets beter imo.
toevoeging op 22 mei 2015, 15:29:57:
doe eens console log (var) id. Krijg je dan goede id mee?
toevoeging op 22 mei 2015, 15:29:57:
doe eens console log (var) id. Krijg je dan goede id mee?
Jessee schreef:toevoeging op 22 mei 2015, 15:29:57:ja, al kan je ook order by id doen. Is iets beter imo.
doe eens console log (var) id. Krijg je dan goede id mee?
ik krijg daar de goede IDs ja
eerst undefined
dan 5, 4, 2, 1 die kloppen
Wat is er met undefined?
Als er nog geen berichten zijn, dan is er ook geen timestamp
Sjoerd schreef:Het werkt als ik DESC weg haal bij ORDER BY idAls er nog geen berichten zijn, dan is er ook geen timestamp
Hoe kan ik de nieuwste bovenaan doen? zonder desc
het moet eerst undefined zijn en dan oplopen. Dus 1, 2, 4, 5 niet 5, 4, 2, 1
Jessee schreef:Dat had ik uitgevonden door DESC weg te halen, nu komen de nieuwste meldingen onderaan, die moeten bovenaan staanhet moet eerst undefined zijn en dan oplopen. Dus 1, 2, 4, 5 niet 5, 4, 2, 1
prepend?
toevoeging op 22 mei 2015, 15:49:00:
huh nee je moet gewoon desk doen.
Je moet alleen in javascript kijken of hij echt de laatste id ophaalt.
toevoeging op 22 mei 2015, 15:49:00:
huh nee je moet gewoon desk doen.
Je moet alleen in javascript kijken of hij echt de laatste id ophaalt.
Jessee schreef:toevoeging op 22 mei 2015, 15:49:00:prepend?
huh nee je moet gewoon desk doen.
Je moet alleen in javascript kijken of hij echt de laatste id ophaalt.
Als ik desc doe dan krijg ik heel veel duplicates van meldingen
bij console.log(id)
komt er in deze volgorde:
Undefined 1,2,4,5,6
Als je het nieuwste bericht bovenin zet, moet je ook het id van het eerste kind in #messages gebruiken ipv de laatste.
Hoe ziet je while-block er trouwens uit? show-meldingen.php haalt max. 10 berichten op uit de database, maar als ik zo naar je console logs kijk, lijkt het erop dat hij er maar eentje terugstuurt..
Hoe ziet je while-block er trouwens uit? show-meldingen.php haalt max. 10 berichten op uit de database, maar als ik zo naar je console logs kijk, lijkt het erop dat hij er maar eentje terugstuurt..
in die while moet je alle berichte in een array zetten $array[] = $whileItem;
en dan als de while klaar is moet je die array json_encoden en dat echoen
en dan als de while klaar is moet je die array json_encoden en dat echoen
Je kunt beter met een ID werken of met een timestamp - 1 seconde, anders kom je in de knoei als er 2 berichten op 1 timestamp zijn verstuurd en er maar 1 naar de client is verzonden.