> 백엔드 개발 > PHP 튜토리얼 > 多表查询碰到的难题

多表查询碰到的难题

WBOY
풀어 주다: 2016-06-13 12:10:47
원래의
1103명이 탐색했습니다.

多表查询遇到的难题
要实现 一个需求:通过硬件设备向服务器发出一个请求,
请求带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的能通用吗
------解决思路----------------------
把你修改后的代码贴出来看看。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿