【问题标题】:Call query from another query in MySQL and fetch into only 1 JSON从 MySQL 中的另一个查询调用查询并仅获取 1 个 JSON
【发布时间】:2016-10-13 13:45:22
【问题描述】:

我想从另一个表调用并选择查询到另一个查询,并且只发送一个 JSON。我有 2 张桌子(towing_listtowing_info

json 获取方法

[{"towing_id":"51","towing_username":"tow","towing_latitude":"3.7310769",
"towing_longitude":"103.1240930","distance":"0"},
    {"towing_id":"56","towing_username":"tow1","towing_latitude":"3.7311311",
"towing_longitude":"103.1239854","distance":"0.013374089073083037"}]

我想使用“towing_username”并从另一个表中调用他们的详细信息希望是他们的“towing_fullname”和“towing_contactnumber”,因此它将在下面得到这个 json 结果:

[{"towing_id":"51","towing_username":"tow","towing_fullname":"tow_name",
"towing_contactnumber":"0123456789","towing_latitude":"3.7310769",
"towing_longitude":"103.1240930","distance":"0"},
{"towing_id":"56","towing_username":"tow1","towing_fullname":"tow1_name",
"towing_contactnumber":"01518191904","towing_latitude":"3.7311311",
"towing_longitude":"103.1239854","distance":"0.013374089073083037"}]

我的桌子

towing_list : (towing_id,towing_username,towing_latitude,towing_longitude)
towing_info : (towing_id,towing_username,towing_fullname,towing_contactnumber)

这是我的代码的一部分

$q = "

SELECT  * , (
    6371 * acos (   
      cos ( radians($lat) )
      * cos( radians( towing_latitude ) )
      * cos( radians( towing_longitude ) - radians($lon) ) 
      + sin ( radians($lat) )
      * sin( radians( towing_latitude ) )
    )   ) AS distance FROM towing_list WHERE `towing_status`='$status' HAVING distance < $total_dis_miles   

ORDER BY distance LIMIT 0 , 20 ";

$r = mysql_query($q);

while ($row=mysql_fetch_object($r)) {  $array[]=$row; }

echo json_encode($array);

有可能吗?我是 JSON 新手。请帮忙..

【问题讨论】:

  • 嗨,我想说这与 json 有一点关系,而不是获取您编码到其中的数据。如果您提供数据库的结构和您想要获得的内容,我很确定,您想要的数据可以通过一个查询获得:)
  • 我有 2 个表 .. 第一个表是 towing_list 列名 (towing_id,towing_username,towing_latitude,towing_longitude) 。第二个表是带有列名的 towing_info (towing_id,towing_username,towing_fullname,towing_contactnumber)。

标签: php mysql sql json json.net


【解决方案1】:

你可以使用加入

$q = "SELECT * , ( 6371 * acos (
cos ( radians($lat) ) * cos( radians( towing_latitude ) ) * cos(radians( towing_longitude ) - radians($lon) ) + sin ( radians($lat) ) * sin( radians( towing_latitude ) ) ) ) AS distance FROM towing_list INNER JOIN towing_info ON towing_info.towing_id = towing_list.towing_id WHERE towing_status='$status' HAVING distance < $total_dis_miles
ORDER BY distance LIMIT 0 , 20 ";

【讨论】:

  • 警告:mysql_fetch_object():提供的参数不是第 26 行 /Applications/XAMPP/xamppfiles/htdocs/vama_v1/Towing_list_user/user_list_towing.php 中的有效 MySQL 结果资源 []
  • $q = "SELECT * , ( 6371 * acos ( cos ( 弧度($lat) ) * cos( 弧度( towing_latitude ) ) * cos(弧度( towing_longitude ) - 弧度($lon) ) + sin ( 弧度($lat) ) * sin( 弧度( towing_latitude ) ) ) AS 距离 towing_list INNER JOIN towing_info ON towing_info.towing_username = towing_list.towing_username WHERE towing_status='$status' HAVING distance
猜你喜欢
  • 2023-03-23
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多