<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PHP-MYSQL: Utilizzo della funzione st_distance_sphere]]></title><description><![CDATA[<p dir="auto">Ciao a tutti ho un problema e spero di riuscirvelo a spiegare.<br />
Innanzitutto ho un database che è composto dai seguenti campi:</p>
<ul>
<li>CompanyObjectId</li>
<li>CompanyName</li>
<li>CityName</li>
<li>Latitude</li>
<li>Longitude</li>
<li>CampingLocationType</li>
<li>PhotoUrl</li>
</ul>
<p dir="auto">Il mio obiettivo è selezionare tutti quei campi includendo anche i metri cui distano ogni riga dalla mia posizione per esempio da un minimo di 1 km ad un max di 200 a seconda di quello che gli passo in input.</p>
<p dir="auto">Allora il codice che ho provato a fare in PHP è questo e che sta dentro il file DBOperations.php:</p>
<p dir="auto">[PHP]<br />
public function GetListaDoveSostare($lat, $lng, $kmmin, $ordinamentoData, $localita){  $metri = (intval($kmmin) * 1000); // ricavo i metri dai km  $com = new DbConnect();  $sql = "";    $sql = "SELECT CompanyObjectId, CompanyName, CityName, Latitude, Longitude,                  CampingLocationType, PhotoUrl, st_distance_sphere(point(".floatval($lng).",".floatval($lat)."), point(CAST(Longitude AS DECIMAL(18,14)), CAST(Latitude AS DECIMAL(18,14))), $metri) as Metri                  FROM tbl_camper_contact            WHERE st_distance_sphere(point(".floatval($lng).",".floatval($lat)."), point(CAST(Longitude AS DECIMAL(18,14)), CAST(Latitude AS DECIMAL(18,14))), $metri)";  mysqli_set_charset($com-&gt;getDb(), 'utf8');  $result = mysqli_query($com-&gt;getDb(), $sql);  return $result;}[/PHP]</p>
<p dir="auto">Dove come input ricevo nell'ordine: latitudine utente, longitudine utente, km impostati come limite da 0 a n km su cui cercare, ordinamento (non è usato al momento), località non è usata al momento.</p>
<p dir="auto">Il risultato di questa funzione sarà inserito in un altra che sta dentro il file GeneralFunctions.php:</p>
<p dir="auto">[PHP]<br />
public function GetListaDoveSostare($resultDoveSostare, $lat, $lng)    {       //non fate caso ai due input lat e lng....      $dbOperationsObject = new DBOperations();      $doveSostare= array();        while ($row = mysqli_fetch_array($resultDoveSostare)) {          $dove_sostare = array(            "CompanyObjectId" =&gt; $row['CompanyObjectId'],            "CompanyName" =&gt; $row['CompanyName'],            "CityName" =&gt; $row['CityName'],            "Latitude" =&gt; $row['Latitude'],            "Longitude" =&gt; $row['Longitude'],            "CampingLocationType" =&gt; ($row['CampingLocationType'] == "Camperplace") ? "Area Sosta" : "Campeggio",            "PhotoUrl" =&gt; $row['PhotoUrl'],            "MetriDaPosizioneCorrente" =&gt;  $row['Metri']//$metri          );          $json= json_encode($dove_sostare);          $dove_sostare = json_decode($json);          array_push($doveSostare, $dove_sostare);      }      return $doveSostare;    } [/PHP]</p>
<p dir="auto">Il problema è basato sostanzialmente su questi due errori:</p>
<p dir="auto">[PHP]AH01215: PHP Warning: mysqli_query(): (HY000/1210): Incorrect arguments to st_distance_sphere in DBOperations.php</p>
<p dir="auto">AH01215: PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in in GeneralFunctions.php [/PHP]</p>
<p dir="auto">Ditemi dove sbaglio. Sto andando in crisi.<br />
Grazie<br />
Cristian</p>
]]></description><link>https://connect.gt/topic/239515/php-mysql-utilizzo-della-funzione-st_distance_sphere</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 16:14:40 GMT</lastBuildDate><atom:link href="https://connect.gt/topic/239515.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Dec 2019 16:43:18 GMT</pubDate><ttl>60</ttl></channel></rss>