Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Odległość geofraficzna między punktami
Forum PHP.pl > Forum > Przedszkole
motomeru
Panowie, tworzę serwis który w zamiarze ma obliczać odległość między punktem docelowym a nadajnikiem do odbioru internetu. Niestety jest przedszkolakiem jeżeli chodzi o PHP... napisałem skrypt niestety nie zwraca mi on wyników. Pewnie zrobiłem gdzieś straszny błąd...
Osobnik wchodzi na moją stronę podaje swoje dane szerokość i długość geograficzną a sql wyrzuca nadajniki PLAY ORANGE i ERY.

  1.  
  2.  
  3. <?php
  4.  
  5. $sz1 = $_POST['sz1'];
  6. $wy1 =$_POST['wy1'];
  7.  
  8. $query = mysql_query("SELECT ID, szerokosc, dlugosc FROM obiekty WHERE ID>0 ORDER BY ID LIMIT 100 ") or die(mysql_error());
  9. if (!$query) {
  10. echo('<div>Problem podczas pobierania listy!</div>');
  11. }
  12. echo '<table width="80%" border="1"><tr><td align="center"><b>ID</b></td><td align="center"><b>szerokosc</b></td><td align="center"><b>dlugosc</b></td><td align="center"><b>BTS_ID</b></td></tr>';
  13.  
  14. $odleglosc = rad2deg(acos(sin(deg2rad($sz1)) * sin(deg2rad($row['szerokosc']) + cos(deg2rad($sz1)) * cos(deg2rad($row['szerokosc'])) * cos(deg2rad($wy1-$row['dlugosc'])))) * 111.18957696;
  15.  
  16. while ($row = mysql_fetch_array($query))
  17. {
  18.  
  19. $ID = $row['ID'];
  20. $szerokosc = $row['szerokosc'];
  21. $dlugosc = $row['dlugosc'];
  22. $bts_id = $row['BTS_ID'];
  23.  
  24. echo "<td align=\"left\">$ID</td>";
  25. echo "<td align=\"left\">$szerokosc</td>";
  26. echo "<td align=\"left\">$odleglosc</td>";
  27. echo "<td align=\"left\">$bts_id</td>";
  28.  
  29.  
  30. }
  31. echo '</table>';
  32. mysql_free_result($result);
  33. ?>
  34.  
  35.  



motomeru
@kreciko dziękuję za odpowiedź ale jak byś spojrzał w kod to byś zobaczył iż wykorzystałem wzór na ortodronę... Gdzieś zrobiłem logiczny błąd i po prostu nie wiem gdzie... przy podaniu stałych bez wykorzystania sql'a dostaję poprawną odpowiedź, wydaję mi się że popełniłem pewnie błąd w drugiej części gdzie powinna być stworzona tabela.
Ulysess
skoro piszesz że ustawiając wartości sztywne dla $szy1 i $wy1 widocznie masz problem z formularzem , sprawdź przede wszystkim czy inputy nazwałeś szy1 / wy1
kreciko
Przed obliczeniem odległości wysłałeś tylko zapytanie do bazy danych, ale nie pobrałeś wyniku tego zapytania. A odwołujesz się do tablicy $row, tak jak by były w niej dane.
motomeru
Masz rację, zmieniłem i już działa już wstawiłem na swoją stronę z ORDER BY 100 smile.gif Jesteś wielki smile.gif powiedz mi tylko czy jest możliwość zmodyfikowania tego skryptu aby w zapytaniu

  1. mysql_query("SELECT ID, szerokosc, dlugosc FROM obiekty WHERE ID>0 ORDER BY ID LIMIT 100 ")


ORDER BY $odleglosc? aby użytkownik mógł zobaczyć z którym nadajnikiem może się połączyć w przypadku małej pojemności?

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.