HTML没有从SQL数据库获取数据

时间:2014-03-11 14:53:23

标签: php android mysql cordova

我在我的项目中使用Phonegap查找当前位置,将经度和经度传递给php脚本,php搜索sql数据库,如果它附近有任何地方/机构到当前位置。我使用xampp获取输出,它在html屏幕上返回我的学院名称。但是,当我使用apk文件并在我的手机中运行相同的代码时,我只得到当前的lat / lon coord但是没有获得实际名称。 这是我的geolocation.html代码

<!DOCTYPE html>
<html>
<head>
    <title>Device Properties Example</title>
    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    function onDeviceReady() {
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    }
    var lat;
    var lon;

    // onSuccess Geolocation
    function onSuccess(position) {
        var element = document.getElementById('geolocation');

        element.innerHTML = 'Latitude: '           + position.coords.latitude             + '<br />' +
                            'Longitude: '          + position.coords.longitude          + '<br />' +    
                            'Altitude: '           + position.coords.altitude              + '<br />' +
                            'Accuracy: '           + position.coords.accuracy              + '<br />' +
                            'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                            'Heading: '            + position.coords.heading               + '<br />' +
                            'Speed: '              + position.coords.speed                 + '<br />' +
                            'Timestamp: '          + position.timestamp                    + '<br />';
        lat= position.coords.latitude;
        lon= position.coords.longitude;
        var xmlhttp;
        if (window.XMLHttpRequest)  {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                document.getElementById("t01").innerHTML=xmlhttp.responseText;
            }
        }

        xmlhttp.open("GET","http://geolocation.webatu.com/Radius.php?lat="+lat+"&lon="+lon,true)
        xmlhttp.send();
    }

    // onError Callback receives a PositionError object
    function onError(error) {
        alert('code: '    + error.code    + '\n' +
              'message: ' + error.message + '\n');
    }
    </script>

</head>
<body>
    <p id="geolocation">Finding geolocation...</p>
    <div id="main">
        <div id="t01"></div>
    </div>
</body>
</html>

这是radius.php代码。上传到000webhost.com

<?php
$mysql_host = "****";
$mysql_database = "****";
$mysql_user = "****";
$mysql_password = "****";
$con=mysqli_connect($mysql_host,$mysql_user,$mysql_password,$mysql_database);

// Check connection
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$rad = 7.442;  // radius of bounding circle in kilometers
$R = 6371;  // earth's mean radius, km
$lat = $_GET['lat'];
$lon = $_GET['lon'];

$sql = mysqli_query($con,"SELECT ID, ClassName,City, latitude, longitude, ( 6371 * acos(   cos( radians('$lat') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('$lon') ) + sin( radians('$lat') ) * sin( radians( latitude ) ) ) ) AS distance FROM geodata HAVING distance < '$rad' ORDER BY distance LIMIT 0 , 20") or die('Error: ' . mysqli_error($con));

while($row = mysqli_fetch_array($sql)){
    echo $row['ID'] . " " . $row['ClassName'];
    echo "<br>";
}

mysqli_close($con);
?>

我的数据库已上传到000webhost,其中包含coreect密码,webhost,用户和数据库名称。请帮帮我。请参阅The Code正在Xampp中工作但不能在我的Android手机上工作

2 个答案:

答案 0 :(得分:1)

首先 - 你为什么要编写与IE6兼容的XHR代码?您不必担心移动设备上的IE6。话虽这么说,你修改了config.xml中的标签吗?详情请见http://cordova.apache.org/docs/en/3.4.0/guide_appdev_whitelist_index.md.html#Whitelist%20Guide

答案 1 :(得分:0)

PhoneGap不能包含PHP包。您可以使用其他方法与数据库进行交互,您可以使用javascript将Ajax调用中的数据传递给处理响应的PHP页面。 (只是这样做的一种示例)。

但是要回答你的问题,你可以将PHP封装在phonegap中。