Hallo und danke schonmal im Voraus für eure Hilfe.
Also, ich rufe eine PHP-Seite auf (weiter unten gepostet), welche mir Daten aus einer Tabelle ausliest und per echo an die Indexdatei übergibt.
Der String sieht dann in ungefähr so aus:
00017,009,003,....
ID PosX PosY
Dieser AJAX-Aufruf erfolgt 0.3-1mal pro Sekunde, pro Benutzer für ca. 60 Tabelleineinträge (macht ca. 200-300 "Datenblöcke" pro Sekunde).
Nun liefert mir aber der String z.T. alte Werte, d.h. wenn sich z.B. PosX umd 1 verändert, dann switcht er komischerweise hin und her:
00017,010,003,....
00017,009,003,....
00017,010,003,....
00017,009,003,....
00017,010,003,....
Und nach ca. 5 vollen Sekunden liefert er mir dann definitiv immer das richtige Resultat.
Sieht jemand einen Fehler im Script oder stosse ich schlichtweg damit an die Grenzen der MYSQL-Datenbank?
Das erstellen der Seite braucht 0.005 Sekunden, inkl. Datenbankzugriff - an dem kanns kaum liegen. Trotzdem springt er hin und her, teils bis zu 5 Schritte (bzw. 5 Datenbankeinträge) zurück.
Sollten mehr Informationen benötigt sein, schreibt bitte, ich werde das benötigte dann posten.
Danke für eure Hilfe!
MfG
Onyxagargaryll
PS: Ich poste zur Sicherheit mal die ganze Datei, auch wenn der untere Teil unrelevant ist...
Also, ich rufe eine PHP-Seite auf (weiter unten gepostet), welche mir Daten aus einer Tabelle ausliest und per echo an die Indexdatei übergibt.
Der String sieht dann in ungefähr so aus:
00017,009,003,....
ID PosX PosY
Dieser AJAX-Aufruf erfolgt 0.3-1mal pro Sekunde, pro Benutzer für ca. 60 Tabelleineinträge (macht ca. 200-300 "Datenblöcke" pro Sekunde).
Nun liefert mir aber der String z.T. alte Werte, d.h. wenn sich z.B. PosX umd 1 verändert, dann switcht er komischerweise hin und her:
00017,010,003,....
00017,009,003,....
00017,010,003,....
00017,009,003,....
00017,010,003,....
Und nach ca. 5 vollen Sekunden liefert er mir dann definitiv immer das richtige Resultat.
Sieht jemand einen Fehler im Script oder stosse ich schlichtweg damit an die Grenzen der MYSQL-Datenbank?
Das erstellen der Seite braucht 0.005 Sekunden, inkl. Datenbankzugriff - an dem kanns kaum liegen. Trotzdem springt er hin und her, teils bis zu 5 Schritte (bzw. 5 Datenbankeinträge) zurück.
Sollten mehr Informationen benötigt sein, schreibt bitte, ich werde das benötigte dann posten.
Danke für eure Hilfe!
MfG
Onyxagargaryll
PS: Ich poste zur Sicherheit mal die ganze Datei, auch wenn der untere Teil unrelevant ist...
PHP-Code:
<?php
ob_start();
include("libs/settings.inc.php");
require("libs/mysql.lib.php");
$mysql = new mysql();
if (isset($_GET['px']) && isset($_GET['py'])) { //&& $_COOKIE['PlayerID']==$_GET['id']
$mysql->update($settings['mysql']['db'],"Playerpos","PosX='".$_GET['px']."', PosY='".$_GET['py']."'","ID_Player='".$_GET['id']."'");
}
$ausgabe="";
$pos_result=$mysql->select($settings['mysql']['db'],"Playerpos","ID_Player, PosX, PosY");
while($pos=mysql_fetch_array($pos_result,MYSQL_BOTH))
{
$pos['ID_Player']=intval($pos['ID_Player'],10);
if ($pos['ID_Player']<10) {
$ID_Player="0000".$pos['ID_Player'];
} else if ($pos['ID_Player']<100 && $pos['ID_Player']>=10) {
$ID_Player="000".$pos['ID_Player'];
} else if ($pos['ID_Player']<1000 && $pos['ID_Player']>=100) {
$ID_Player="00".$pos['ID_Player'];
} else if ($pos['ID_Player']<10000 && $pos['ID_Player']>=1000) {
$ID_Player="0".$pos['ID_Player'];
} else if ($pos['ID_Player']<100000 && $pos['ID_Player']>=10000) {
$ID_Player="".$pos['ID_Player'];
} else if ($pos['ID_Player']>=100000) {
die ("Error in 'Position' (read.php)");
}
$pos['PosX']=intval($pos['PosX'],10);
if ($pos['PosX']<10) {
$PosX="00".$pos['PosX'];
} else if ($pos['PosX']<100 && $pos['PosX']>=10) {
$PosX="0".$pos['PosX'];
} else if ($pos['PosX']<1000 && $pos['PosX']>=100) {
$PosX="".$pos['PosX'];
} else if ($pos['PosX']>=1000) {
die ("Error in 'Position' (read.php)");
}
$pos['PosY']=intval($pos['PosY'],10);
if ($pos['PosY']<10) {
$PosY="00".$pos['PosY'];
} else if ($pos['PosY']<100 && $pos['PosY']>=10) {
$PosY="0".$pos['PosY'];
} else if ($pos['PosY']<1000 && $pos['PosY']>=100) {
$PosY="".$pos['PosY'];
} else if ($pos['PosY']>=1000) {
die ("Error in 'Position' (read.php)");
}
$ausgabe.=$ID_Player.",".$PosX.",".$PosY.",";
}
echo($ausgabe);
// CHECKIFONLINE
//SET TIMESTAMP own
if ($_COOKIE['PlayerID']==$_GET['id']) {
$mysql->update($settings['mysql']['db'],"Playerpos","CheckTime=".date(His),"ID_Player=".$_GET['id']);
}
?>
Kommentar