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']);
    }
?>
 
          
 AJAX-PHP-MYSQL Problem-Daten durcheinander
									
									
									AJAX-PHP-MYSQL Problem-Daten durcheinander
								
 
  
 
Comment