晓夏

小皇

教育信息化方案砖家

微信开发 - PHP读取数据库多条数据回复微信图文消息代码实例

浏览量:2858

图文模板 如下

$picTplhead = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[news]]></MsgType>
    <ArticleCount><![CDATA[%s]]></ArticleCount>
    <Articles>";//与下面的picTpl拼接
$picTpl = "<item>
    <Title><![CDATA[%s]]></Title>
    <Description><![CDATA[%s]]></Description>
    <PicUrl><![CDATA[%s]]></PicUrl>
    <Url><![CDATA[%s]]></Url>
    </item>";
$picTplfoot = "</Articles>
    <FuncFlag>0</FuncFlag>
    </xml>";//与上面的picTpl拼接


首先,库是不可少的,代码如下

function select_data($sql){//选择数据
		$ret = mysql_query($sql) or die();
		return $ret;
	}


先来获取一条数据试试,就是读取数据,将该数据转换为变量,代码如下:

$select_sql = "select * from wechat where openid='$fromUsername' and wechat_bind=1 limit 1";
$res = select_data($select_sql);
$res = mysql_fetch_assoc($res);

$contentStr = $res['message'].$res['username']; 
//如果存在$contentStr则会输出这个内容,这个是微信开发文档里面的实例

获取数据条数:

$tickets_count = select_data("select * from hd_act_participate where mem_id=".$res['mem_id']." order by act_participate_id desc limit 0,4");
$tickets_count = mysql_num_rows($tickets_count);


如果是多条数据呢?首先读取数据,然后while循环。代码如下:

$tickets = select_data("select * from participate where mem_id=".$res['mem_id']." order by act_participate_id desc limit 0,4");
    while($row = mysql_fetch_array($tickets)){
        $select_sql = "select * from hd_act where act_id=".$row['act_id']."";
        $res = select_data($select_sql);
        $res = mysql_fetch_assoc($res);
        $imgurl = 'http://www.brand.com'.$res['act_poster_middle'];
        $title = $res['act_name'];
        $url = 'http://www.brand.com/v/events/ticket/';
        $t=$row['act_id'];
        $resultpictpl .= sprintf($picTpl,$title, $title, $imgurl, $url);
    }


最后输出

$resultpictplfoot = sprintf($picTplfoot);//图文消息尾部
$resultStr = $resultStrhead.$resultpictpl.$resultpictplfoot;





完整的代码如下:

$select_sql = "select * from wechat where wechat_openid='$fromUsername' and wechat_bind=1 limit 1";
								$res = select_data($select_sql);
								$res = mysql_fetch_assoc($res);
								if($res){
									
									$tickets_count = select_data("select * from participate where mem_id=".$res['mem_id']." order by act_participate_id desc limit 0,4");
									$tickets_count = mysql_num_rows($tickets_count);

									$resultStrhead = sprintf($picTplhead, $fromUsername, $toUsername, time(), $tickets_count);//图文消息头部
									$tickets = select_data("select * from hd_act_participate where mem_id=".$res['mem_id']." order by act_participate_id desc limit 0,4");
									
									while($row = mysql_fetch_array($tickets)){
										$select_sql = "select * from hd_act where act_id=".$row['act_id']."";
										$res = select_data($select_sql);
										$res = mysql_fetch_assoc($res);
										$imgurl = 'http://www.b.com'.$res['act_poster_middle'];
										$title = $res['act_name'];
										$url = 'http://www.b.com/v/events/ticket/';
										$t=$row['act_id'];
										/*$act = select_data("select * from hd_act where act_id=".$t['act_id']."");
										$act = mysql_fetch_assoc($act);
										$actname = $act['act_name'];
										$actdescription = $act['mem_id'];*/
										$resultpictpl .= sprintf($picTpl,$title, $title, $imgurl, $url);
									}
									$resultpictplfoot = sprintf($picTplfoot);//图文消息尾部
									$resultStr = $resultStrhead.$resultpictpl.$resultpictplfoot;

									//$contentStr = "有数据"; 
								}else{
									$contentStr = "请绑定您的账号后查询"; 
								}


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。