Home >Backend Development >PHP Tutorial >为什么用WHILE不能遍历输出表

为什么用WHILE不能遍历输出表

WBOY
WBOYOriginal
2016-06-23 14:17:121082browse

一个很普通查询输出函数现在表中有10条数据调用的时候因为要把结果转成XML所以不能在函数体里做echo但是这样调用只能输出最后一条记录,求能在调用页面输出整表内容的方法调用echo main_shopactive();函数体function main_shopactive(){	//商场活动查询,返回逆向排序的最后一条活动记录	$conn = mysql_connect_conn();	$sql = "SELECT * FROM wx_active order by id desc limit 0,30";	$rs = mysql_db($sql,$conn) or die('查询记录失败!'); 	if(mysql_num_rows($rs) > 0)	{		while($row = mysql_fetch_assoc($rs))		{			$my_active = $row['concent'];		}	}	else	{		$my_active = 'NO ACTIVE';	}	return $my_active;}


回复讨论(解决方案)

while($row = mysql_fetch_assoc($rs))
        {
            $my_active[] = $row['concent'];
        }

楼上正解,。。

返回值是数组,调用呢?

调用怎么一次性读出所有表内值?

foreach(main_shopactive() as $v) echo $v.'
';

你可以 
$my_active .= $row['concent'];
return $my_active;

也可以
$my_active[] = $row['concent'];
return join('', $my_active);

版主大人你的第一种方法和我原代码有什么区别呢?

区别在于多了一个点
不要小看这一点,有了它就有了质的变化

版主老大很奇怪的现象啊。dior 资生堂 这是两个品名后面应该分别有楼层地点分类,现在全都连接到一起了
结果应该是这样的:'?dior一楼化妆品0412-8999960资生堂一楼化妆品0412-89999961'
现在却是这样:'dior资生堂一楼一楼0412-89999600412-89999961化妆品化妆品'
什么原因啊?字段排列顺序完全不对呢。

调用页面

$floor_find = new floor_product_lookfor();echo ($floor_find->floor_product('一楼'));


原来类和函数class floor_product_lookfor{	function floor_product($floor_nunmer)	{		$conn = mysql_connect_conn();		$sql = "SELECT * FROM wx_floor where goods_floor ='$floor_nunmer' order by goods_id desc";		$rs = mysql_db($sql,$conn) or die('查询记录失败!'); 		if(mysql_num_rows($rs) > 0)		{			while($row = mysql_fetch_assoc($rs))			{				$floor .= $row['goods_name'];				$name .= $row['goods_floor'];				$tel .= $row['goods_tel'];				$type .= $row['goods_type'];						}		}		else		{			$floor = 'NO GOODS INFORMATION';		}		return ($floor.$name.$tel.$type);	}	}

是不是因为有2个以上的字段就不能用 . 连接

没有什么可奇怪的
既然你简化了你的代码(没有给出记录间的分隔符)那当然是混在一起的
至少你需要给出你期望的数据格式

其实产生 xml 节点数据是可以在 sql 指令中直接完成的

其实也不算是简化了,只是我以为这个方法可以通用就套进其他的函数里了。因为是微信只能用他固定的接口和代码了~
这样的效果就是我所期望的,麻烦版主大人了
?

dior一楼化妆品0412-8999960资生堂一楼化妆品0412-89999961

while($row = mysql_fetch_assoc($rs))
{
  $value .= $row['goods_name'] . $row['goods_floor'] . $row['goods_tel'] . $type .= $row['goods_type'];            
}
return $value;

 谢谢!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn