Heim  >  Artikel  >  Backend-Entwicklung  >  多表查询碰到的难题

多表查询碰到的难题

WBOY
WBOYOriginal
2016-06-13 12:10:471080Durchsuche

多表查询遇到的难题
要实现 一个需求:通过硬件设备向服务器发出一个请求,
请求带3个参数:
1.用户编码
2.经度
3.纬度


服务器操作:
1.通过经纬度去百度地图获取具体地理地址
2.通过用户编码进行多表查询。获取用户的手机号码。
3.通过取得的地址使用短信网关发送到查询到的手机中
4.短信网关返回发送成功则保存相关数据到mysql



现在问题出在多表查询没有返回手机号码。但是在操作面板则能查询到。是什么问题

流程图:


php代码:

<?php<br />    include_once "config.php";<br />    header("Content-type: text/html; charset=utf8");<br />    $mysql=mysqli_connect($db_host,$db_user,$db_password,$db_name);<br />    mysql_select_db($db_name,$mysql);<br />    mysql_query("SET NAMES 'utf8'");<br />    mysql_query("set character_set_client='utf8'");<br />    mysql_query("set character_results='utf8'");<br />    mysql_query("set collation_connection='utf8'");<br />	$user=$_GET['user'];<br />	$lat=$_GET['lat'];<br />    $lng=$_GET['lng'];<br /><br />    //获取地理地址<br />    date_default_timezone_set('PRC');<br />    $into_time=Date("Y-m-d H:i:s");<br />    $url="http://api.map.baidu.com/geocoder/v2/?ak=E6f2d2e9e662917d0e6eee74ced3db24&callback=renderReverse&location=".$lat.",".$lng."&output=json&pois=1";<br /><br /><br /><br />    $json=file_get_contents($url);<br />    $xjson = substr($json,29,-1);<br />    $point = $lat.'_'.$lng;<br />    $data=json_decode($xjson,true);<br />    $dress = $data['result']['formatted_address'];<br />    file_put_contents("localjson.txt",$data.'--dress--'.$dress);<br /><br />//    $g="select akw_user.mobile from akw_user where akw_user.id in (select user_group.userid from user_group where user_group.sqlid='".$user."')";<br />    //多表查询<br />    $g="select akw_user.mobile from akw_user where akw_user.id in (select user_group.userid from user_group where user_group.sqlid = '".$user."')";<br />    $ids= mysql_query($g);<br />    [email&#160;protected]_fetch_assoc($ids);<br />    $f=$n['id'];<br />    echo '--f--'.$f.'--g--'.$g;<br />?>

------解决思路----------------------
晕死,我是让你修改SQL语句,增加对id字段引用:

Quote: 引用:

$g="select akw_user.mobile from akw_user where akw_user.id in (select user_group.userid from user_group where user_group.sqlid = '".$user."')";<br />    $ids= mysql_query($g);<br />    [email&#160;protected]_fetch_assoc($ids);<br />    $f=$n['id'];


你的SQL查询里面仅仅获取了mobile 字段,但是你$f=$n['id'],貌似很不合理啊,获取一个没有select的字段,臣妾做不到啊

新增后提示出错:
select akw_user.mobile from akw_user where akw_user.id in (select user_group.userid from user_group where user_group.sqlid = '1409203388')<br />Access denied for user 'root'@'localhost' (using password: NO)

------解决思路----------------------
<br />$g="select akw_user.mobile,akw_user.id from akw_user where akw_user.id in (select user_group.userid from user_group where user_group.sqlid = '".$user."')";<br />    $ids= mysql_query($g);<br />    [email&#160;protected]_fetch_assoc($ids);<br />    $f=$n['id'];<br />


改这样试试。
------解决思路----------------------
我的#15 就被你忽视了
------解决思路----------------------
mysqliiiiiii_connect
mysql_query
说来惭愧一直用框架,加了i的能通用吗
------解决思路----------------------
把你修改后的代码贴出来看看。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:新人啊关于表单的Nächster Artikel:session 丢掉