Script schreibt Wert nicht in Variable

was mach ich denn jetzt wieder falsch?

Script ist der Variable zugewiesen, aber es wird kein Wert reingeschrieben.

<?
//--------------- Standortabfrage ----------------------------------------------
$latitude = GetValue(29735 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Latitude]*/);
$longitude = GetValue(11917 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Longitude]*/);
//--------------- Standortbestimmung ---------------------------------------
$Standort = GetValue(42989 /*[Computer\HandyWatch\Variablen\Standort]*/);

       switch ($Standort)
    {
        case 0:
          	(( $latitude >= '46.53800' AND $latitude <= '46.66800' ) && ( $longitude >= '7.90270' AND $longitude <= '8.11181' ));
    				break;
        case 1:
          	(( $latitude >= '46.5000' AND $latitude <= '46.51000' ) && ( $longitude >= '7.90000' AND $longitude <= '7.90100' ));
    				break;
        case 2:
          	(( $latitude >= '46.7000' AND $latitude <= '46.73000' ) && ( $longitude >= '7.69000' AND $longitude <= '7.70000' ));
    				break;
	}

?>

… und ich seh kein „SetValue“ …

hmm… :confused:

… und ich seh kein „SetValue“ …

da sind meine Kenntnisse wieder mal zu schwach. Hab jetzt rumgebastelt mit SetValue, aber ich kriegs nicht hin.

Da wir hier alle unsere Glaskugeln verlegt haben, was willst Du machen und wie sieht Dein jetziges Scriptgebastel denn aus:rolleyes:

das Script macht „irgendwas“, aber solange du den Output nicht in eine Variable schreibst („SetValue…“)…:rolleyes:

Die Sytax könnte so aussehen,

SetValue(42989,$Standort); 

vorausgesetzt, $Standort hat vorher schon einen Inhalt bekommen, entweder durch Berechnung oder Zuweisung

<?
//--------------- Standortabfrage ----------------------------------------------
$latitude = GetValue(29735 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Latitude]*/);
$longitude = GetValue(11917 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Longitude]*/);
//--------------- Standortbestimmung ---------------------------------------
$Standort = GetValue(42989);

       switch ($Standort)
    {
        case 0:
          	$ort = (( $latitude >= '46.53800' AND $latitude <= '46.66800' ) && ( $longitude >= '7.90270' AND $longitude <= '8.11181' ));

				 	break;
        case 1:
          	$ort = (( $latitude >= '46.5000' AND $latitude <= '46.51000' ) && ( $longitude >= '7.90000' AND $longitude <= '7.90100' ));
          	        
    				break;
        case 2:
          	$ort = (( $latitude >= '46.7000' AND $latitude <= '46.73000' ) && ( $longitude >= '7.69000' AND $longitude <= '7.70000' ));
          	        
    				break;
    				
  	}
        	SetValue(42989, $ort)
?>

Script läuft zwar ohne Fehler durch, aber es setzt mir die Integer-Variable (42989) nicht auf den gewünschten Wert.

hmm… :confused:
… ich auch…

Ne, im Ernst, was erwartest Du den von dem Script - beschreib doch noch mal genau, was das Script machen soll!

Zur Zeit werden 3 Variablen eingelesen, dann noch ein CASE und aus - da kann keine Variable gesetzt werden !!

da fehlt am Ende noch ein ;
wie sieht das Ergebnis aus, passt es in eine Integer-vari
?

wenn case 0 der Fall ist, soll die Variable Standort auf den Wert 0 gesetzt werden, bei case 1 auf 1 usw.

hab das; noch ergänzt

Fehlermeldung:

Notice: Undefined variable: ort in C:\IP-Symcon\scripts\51103.ips.php on line 24

Warning: Could not convert variant of type (Null) into type (Integer) in C:\IP-Symcon\scripts\51103.ips.php on line 24

vielleicht hilft es Dir die Funktion deines Scriptes besser zu verstehen wenn du den Inhalt der Variablen ( $ort, $Standort) in jedem case und am Ende per echo ausgibst. So kann man schön die Funktion überprüfen und lernt wie die Funktionen funktionieren.
Und vielleicht nochmal grundlegend die Arbeitsweise von „case“ studieren.

Ich würde in diesem Falle ein IF Construct wählen:


<?
	//--------------- Standortabfrage ----------------------------------------------
	$latitude  = GetValue(29735 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Latitude]*/);
	$longitude = GetValue(11917 /*[Computer\HandyWatch\Skripte\myIPhone Jürg\Longitude]*/);
	//--------------- Standortbestimmung ---------------------------------------
	$ort  = GetValue(42989);

   if ($latitude >= 46.53800 AND $latitude <= 46.66800 and $longitude >= 7.90270 AND $longitude <= 8.11181 ) {
		$ort = 0;
   } elseif ($latitude >= 46.5000 AND $latitude <= 46.51000 and  $longitude >= 7.90000 AND $longitude <= 7.90100 ) {
		$ort = 1;
   } elseif ($latitude >= 46.7000 AND $latitude <= 46.73000 and $longitude >= 7.69000 AND $longitude <= 7.70000 ) {
		$ort = 2;
	} else {
		//$ort = 3;
   }

   SetValue(42989, $ort)
?>

Außerdem noch wichtig - was soll im ELSE Zweig passieren - also wenn keine Bedingung zutrifft.

Und die Variablen $latitude und $longitude sollten als Float definiert sein.

Die zusätzliche Klammerung kannst Du auch weglassen ("&&" und „and“ ist das Selbe).

danke euch für die Hilfe.