php mysql 查询
数据库中有张表有主键pmcode还有其他属性如图:
我现在想通过pmcode判断某个用户是否存在,存在的话将其信息取出,不存在的话返回不存在,然后通过拼接xml的形式发送出去,代码如下:
//拆分发来的信息得到会员卡号 $arry=explode(+,$form_content); $memberid =$arry[1]; //连接数据库 $link=mysql_connect(sae_mysql_host_m.':'.sae_mysql_port,sae_mysql_user,sae_mysql_pass); if($link) { mysql_select_db(sae_mysql_db,$link); //查询数据 $result1=mysql_query(select * from numbers where pmcode = '.$memberid.';); $num_result = mysql_num_rows($result1); if($num_result==1){ // $row= $result1->fetch_assoc(); $row=mysql_fetch_row($result1); $result_str=您的会员--信息如下:\n\n卡号:$row[pmcode].\n姓名:.$row[names].\n等级:.$row[4].\n积分:$a[5]; $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype,$result_str); echo $resultstr; exit; }else{ $msgtype = text; $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype,--select * from numbers where pmcode = '.$memberid.'); echo $resultstr; exit; } } else{ echo 连接数据库失败.mysql_error; } mysql_close($link); }
可是就算输入正确的pmcode都娶不到想要的数据,求大神修改
回复讨论(解决方案) if($num_result==0){ // $row= $result1->fetch_assoc(); $row=mysql_fetch_row($result1); $result_str=您的会员--信息如下:\n\n卡号:$row[pmcode].\n姓名:.$row[names].\n等级:.$row[names].\n积分:$a[names]; $resultstr = sprintf($texttpl, $fromusername, $tousername, $time, $msgtype,$result_str); echo $resultstr; exit;
改成==0也不行
echo $memberid; 得到什么值,把sql复制到dos命令行下执行能得到数据吗
echo $memberid; 得到什么值,把sql复制到dos命令行下执行能得到数据吗
得到的是正确的值。
$num_result = mysql_num_rows($result1);
echo $num_result; //输出什么
$num_result = mysql_num_rows($result1);
echo $num_result; //输出什么
1
那不就对了,你主帖的代码没问题,应该可以进入if里面。
那不就对了,你主帖的代码没问题,应该可以进入if里面。
取出一条数据后,怎么获得里面的属性,怎么把pmcode,names之类的打印出来?
$row=mysql_fetch_row($result1);
print_r($row);
$row=mysql_fetch_row($result1);
print_r($row);
只取names这个属性呢?
$row['names']
$row['names']
$link=mysql_connect(sae_mysql_host_m.':'.sae_mysql_port,sae_mysql_user,sae_mysql_pass); if($link) { mysql_select_db(sae_mysql_db,$link); $memberid=j00000000b005; //查询数据 $result1=mysql_query(select * from numbers where pmcode = '.$memberid.'); $row=mysql_fetch_row($result1); $num_result = mysql_num_rows($result1); if($num_result==1){ $resultstr= $row['names']; echo fff.$resultstr; exit; }else{ echo 未找到数据; } } else{ echo 连接数据库失败.mysql_error; } mysql_close($link);
为什么只输出了fff ? print_r($row); // 贴出结果
array ( [0] => j00000000b005 [1] => ?ㄧ? [2] => f [3] => [4] => [5] => 20121012 [6] => 20130430 [7] => z [8] => je11 [9] => 0 [10] => 0 [11] => 0 [12] => [13] => )
print_r($row); // 贴出结果
array ( [0] => j00000000b005 [1] => ?ㄧ? [2] => f [3] => [4] => [5] => 20121012 [6] => 20130430 [7] => z [8] => je11 [9] => 0 [10] => 0 [11] => 0 [12] => [13] => )
哦,我搞错了。
echo $row[1];
有乱码,query前面加上一句:mysql_query(set names utf8); 试试
你把mysql_fetch_row改成mysql_fetch_assoc试下。。。然后打印数组