php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 03-09-2010, 10:02
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard NaN bei Berechnung nach Serverumzug?

Hallöchen,

ich stehe vor einem Problem, bei dem mir irgendwie die Logik fehlt.

Ich bin kürzlich von einem bekannten Hoster aus Berlin zu einem anderen bekannten Hoster nach Montabaur umgezogen.

Bei den Berliner Jungs funktionierte ein Script tadellos.
Koordinaten werden aus einer DB geholt, und mittels der GetDistance Funktion aus der gmapper Klasse zu einer Entfernung zusammengerechnet.

Nachdem ich aber umgezogen bin, macht das Script auf einmal Probleme, handelt es sich um kleine Distanzen bzw. wenige Koordinaten, funktioniert die Entfernungsberechnung. Handelt es sich aber um mehrere Koordinaten (~ 1000), sagt er mir als Ergebnis NaN.

Bevor ich nun Code poste wollte ich fragen - nachdem mich google usw. nicht weiter gebracht hat, was das für grundlegende Ursachen haben kann.

Vielen Dank im Voraus für Denkansätze,

Boris
Mit Zitat antworten
  #2 (permalink)  
Alt 03-09-2010, 10:55
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Ist die PHP-Version unterschiedlich?

Ist der Prozessor im Server ein anderer (32bit/64bit)?
Mit Zitat antworten
  #3 (permalink)  
Alt 03-09-2010, 11:24
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Montabaur: PHP Version 4.4.9 (neu)
Berlin: PHP Version 5.2.12 (alt)

Zur CPU kann ich leider nichts sagen, der Begriff Serverumzug war meinerseits vielleicht auch etwas blöd gewählt, Providerwechsel hätte es besser getroffen, es handelt sich nämlich nur um ein Webhosting Paket.
Mit Zitat antworten
  #4 (permalink)  
Alt 03-09-2010, 11:26
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ghostrider28 Beitrag anzeigen
Montabaur: PHP Version 4.4.9 (neu)
neu??? PHP 4 ist seit 2 Jahren offiziell tot! Bitte vergiss PHP 4 und steig so schnell wie möglich auf PHP 5 um. Schon allein wegen der Sicherheit.
Mit Zitat antworten
  #5 (permalink)  
Alt 03-09-2010, 11:27
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

.htaccess
für 1und1

Code:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
einfach ins root und fertig
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #6 (permalink)  
Alt 03-09-2010, 11:39
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Bei der ****** Medien AG in Berlin konnte ich zwischen 4 und 5 switchen, bei *** Internet AG kann ich das scheinbar nicht.
Daher habe ich mal eben die htaccess erweitert.

Der Fehler mit der Berechnung = NaN erscheint aber weiterhin.

Kann das andere Ursachen haben als die PHP version?

Hier mal ein wenig Code.
Wie gesagt, funktionierte vorher.

Code:
    while( $row = mysql_fetch_array($result,MYSQL_ASSOC) ) 
    {
        $ser_time[] = $row['servertime'];
        $c[] = $row['field_3']; 
        $d[] = $row['field_4']; 
        
    }
        
        for($i=1;$i<$counter-1;$i++)
        
             {
                   $x =  $c[$i];
                    $y =  $d[$i];
                   $punkte[]=array($x,$y);
        
             } 
            
$dist = $karte->getDistance($punkte);
$dist = $dist/1000;
Mit Zitat antworten
  #7 (permalink)  
Alt 03-09-2010, 12:43
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Das Interessante wäre, was in der Methode getDistance() passiert.
Mit Zitat antworten
  #8 (permalink)  
Alt 03-09-2010, 12:46
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

jop - die Vermutung liegt nahe, dass die Berechnung in Metern irgendwann oberhalb 1000 Orte einen Integer-überlauf (32 bit mit Vorzeichen, also max 2.14 milliarden) erzeugt ....

also zeig mal getDistance

und in welchem Format liegen die X- und Y-Koordinate in der Datenbank ?
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #9 (permalink)  
Alt 03-09-2010, 13:14
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Die Koordinaten kommen in folgender Form aus der Datenbank:

53.52175
8.10157

Die Funktion getDistance():

PHP-Code:
function getDistance($koord)
    {
        if (!
is_array($koord))
        {
            return 
false;
        }

        
$ent 0;
        
$welt 6378.137// Erdradius, ca. Angabe

        
foreach($koord as $key => $fetch)
        {
            if (isset(
$koord[$key 1]))
            {
                
$erste_breite $koord[$key][0]; // lat
                
$erste_laenge $koord[$key][1]; // lon
                
$erste_breite_rad deg2rad($erste_breite);
                
$erste_laenge_rad deg2rad($erste_laenge);

                
$zweite_breite $koord[$key 1][0]; // lat
                
$zweite_laenge $koord[$key 1][1]; // lon
                
$zweite_breite_rad deg2rad($zweite_breite);
                
$zweite_laenge_rad deg2rad($zweite_laenge);

                
$dis acos(
                    (
sin($erste_breite_rad) * sin($zweite_breite_rad)) +
                    (
cos($erste_breite_rad) * cos($zweite_breite_rad) *
                        
cos($zweite_laenge_rad $erste_laenge_rad))) * $welt;

                
$ent $ent $dis;
            }
        }
        
$entfernung $ent 1000;
        return 
round($entfernung5);
    } 
Mit Zitat antworten
  #10 (permalink)  
Alt 03-09-2010, 13:21
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

ich fürchte fast die letzte Anweisung
$entfernung = $ent * 1000;
wenn du im aufrufenden Programm sowieso wieder durch 1000 teilst, kannst du die auch rauslassen
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #11 (permalink)  
Alt 03-09-2010, 13:25
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Hm, dann verschwindet zwar das NaN, aber es kommt 0 heraus, wo eigentlich etwa 200 (km) herauskommen sollte.
Mit Zitat antworten
  #12 (permalink)  
Alt 03-09-2010, 13:27
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

kannst du deine getDistance-Funktion mal mit ein paar "echos" verschönern ...

damit du siehst, dass dein Array mit den Koords richtig abgearbeitet wird . und natürlich zur laufenden Berechnung der Entfernung nach jedem Rechenschritt...

außerdem - warum nimmst du nicht $fetch sondern rechnest wieder direkt mit dem urspünglichen Array (innerhalb des Foreach)
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
  #13 (permalink)  
Alt 03-09-2010, 13:39
Ghostrider28
 Registrierter Benutzer
Links : Onlinestatus : Ghostrider28 ist offline
Registriert seit: May 2010
Beiträge: 111
Ghostrider28 befindet sich auf einem aufstrebenden Ast
Standard

Kleine Info, bei der Funktion handelt es sich um eine fertige Funktion einer Klasse, die man im Internet herunterladen kann. Da sie bis zum Umzug funktionierte, habe ich auch dort nicht herumgepfuscht.

Nach der "Verschönerung" durch echo kam heraus:

Key:1204 Wert: 117.56026770155<br>
Key:1205 Wert: 117.56026770155<br>
Key:1206 Wert: 117.56026770155<br>
Key:1207 Wert: 117.56026770155<br>
Key:1208 Wert: 117.56026770155<br>
Key:1209 Wert: 117.56026770155<br>
Key:1210 Wert: 117.56026770155<br>
Key:1211 Wert: 117.68682378333<br>
Key:1212 Wert: 117.90697979517<br>
Key:1213 Wert: 117.97735465366<br>
Key:1214 Wert: 118.08191921342<br>
Key:1215 Wert: 118.08191921342<br>
Key:1216 Wert: 118.16759624081<br>
Key:1217 Wert: 118.32437878168<br>
Key:1218 Wert: NAN<br>
Key:1219 Wert: NAN<br>
Key:1220 Wert: NAN<br>
Key:1221 Wert: NAN<br>
Mit Zitat antworten
  #14 (permalink)  
Alt 03-09-2010, 13:43
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Die Koordinaten müsste man auch noch wissen.
Mit Zitat antworten
  #15 (permalink)  
Alt 03-09-2010, 13:44
eagle275
 Registrierter Benutzer
Links : Onlinestatus : eagle275 ist offline
Registriert seit: Jun 2010
Beiträge: 403
eagle275 befindet sich auf einem aufstrebenden Ast
Standard

nun .. zu groß scheint der Wert tatsächlich nicht zu sein .. 118 km (und ein paar bruchstücke ) sind ja kaum der Rede wert ....

wie sehen denn ab Key 1218 die Bestandteile des Koords - Feldes aus ...

kann es sein, dass einer der Werte aus der Datenbank "müll" liefert?
__________________

Wer LESEN kann, ist klar im Vorteil!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Nach Serverumzug - 1 PHP-Fehler ??? japsa PHP Developer Forum 4 02-05-2010 14:49
Smarty-Problem nach Serverumzug Sebix Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 1 14-01-2008 20:00
Umlaute nach Serverumzug komisch stacho PHP Developer Forum 10 28-08-2006 19:23
Probleme nach Serverumzug brauni54 PHP Developer Forum 7 01-12-2005 19:16
PHP Problem nach Serverumzug viper05 PHP Developer Forum 5 09-02-2005 13:55

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:52 Uhr.