摘要:
- 我是后端开发新手。
- 对于我的网站,用户输入城市位置和日期,然后点击提交按钮以选择要执行的事件。
- 城市 GPS 坐标由 geobytes.com JSON-P API 提供
- 日期由 jQuery datepicker 提供
- 在外部 JavaScript 文件中提取坐标和日期,然后传递到 PHP 文件 (AJAX) 以查询多个表,然后将结果回显到网页。
- 在我使用 XAMMP 的本地计算机上,一切正常。
- 在我的学生网络空间上,对同时使用 GPS 和日期的表格进行的查询不会回显
背景:
- 除了连接之外,两台服务器上的 PHP 代码相同
- 位置表查询有效
- 日期表查询有效
- 一个表的字段包含 GPS 和日期。此查询不会从学校服务器回显。
- 本地计算机是 MariaDB 10.1.38//Windows 10 上的 XAMMP v3.2.3)
- 学校mysql服务器版本是5.5.54(在unix上)
- PHP 版本 7.3.3
// PHP code
// AJAX VALUES PASSED FROM JAVASCRIPT FILE`
$s = $_GET['s'];
$q = floatval($_GET['q']);
$r = floatval($_GET['r']);
// FOR MYSQL
$sqlStarParty = "SELECT sp_name, sp_location, sp_date_start, sp_nights, sp_link, sp_comment
FROM star_party
WHERE
sp_date_start <= DATE_ADD(STR_TO_DATE('$s', '%Y-%m-%d'), INTERVAL 14 DAY)
AND
sp_date_start >= DATE_SUB(STR_TO_DATE('$s', '%Y-%m-%d'), INTERVAL 14 DAY)
AND
sp_latitude < ($q + 2) AND sp_latitude > ($q - 2)
AND
sp_longitude < ($r + 2) AND sp_longitude > ($r - 2)";
// TO BE ECHOED TO WEBPAGE
$resultStarParty = mysqli_query($conn, $sqlStarParty);
if (mysqli_num_rows($resultStarParty) > 0) {
while($row = mysqli_fetch_assoc($resultStarParty)) {
echo $row["sp_name"] . "<br/>";
echo "Location : " . $row["sp_location"] . "<br/>";
echo "Current year event start date: " . date_format(new DateTime($row["sp_date_start"]),'F, jS') . " for " . $row["sp_nights"] . " nights<br/>";
echo "Details and map: " . "<a href='".$row["sp_link"]."' target='_blank'>Website</a><br/>";
echo "<br></br>";
}
} // if no records match query - print 0 results
else {
echo "Sorry no star parties for this time and location";
}
预期结果:
- 所有查询日期/位置/日期+位置都应回显到网页。 实际结果:
- 用户提交的位置和日期落在明星派对事件日期范围内(+- 14 天)
- 没有显示错误消息
- 提交按钮没有响应,或者明星聚会 table 没有回显。
- 如有任何帮助,我们将不胜感激!
解决方案:
- 我收到了 500 服务器错误,这可能是多种原因造成的。
- MySQL 数据库正在获取正确的 js 变量值。
- 当我发现这两个表使用
NEW DATE_TIME
时,问题得到了纠正。 - 将 PHP 代码更改为
date_create
。明星派对结果已显示且正确。 - 谢谢保罗!
最佳答案
我想我已经解决了。
在发生 date_format(new DateTime($row["op_date"])
的地方,我替换为 date_format(date_create($row["op_date"])
。星星派对正在显示现在正确。希望这成立。
关于php 文件不回显远程服务器上 mysql 表的查询,但适用于本地 XAMMP mariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140011/