单纯的SQL恐怕不能完成。可以先用SQL取出sort_id包含1的数据:
SELECT pro_id
FROM A
WHERE FIND_IN_SET('1', sort_id);再用PHP计算:
$t = explode(",", $sort_id);
echo count(array_unique($t));
SELECT pro_id
FROM A
WHERE FIND_IN_SET('1', sort_id);再用PHP计算:
$t = explode(",", $sort_id);
echo count(array_unique($t));
echo count(array_unique($t));
pro_id
1,2,3,
2,4,5,
==================
合并后,去掉相同的2,
剩下就是1,2,3,4,5,
总共5条记录
echo count(array_unique($t));
谢谢你的问答,汗颜我的基础知识没掌握牢固,你这句话得到的结果都是1;这么得到里面数组的个数呢?
<?
require_once("../admin/includes/config.php");
$user_id=$_GET['user_id'];
$query="select * from i4g_tag where user_id='$user_id'";
$num=Query_db($query,'num');//echo $num;echo "<br>";
$result=Query_db($query,'result');
for ($i=0; $i<$num; $i++)
{
$row=Rerult_to_array($result);
$tag_id=$row['tag_id'];
$tag_name=$row['tag_name'];//echo $tag_name;echo "<br>";
$tag_id="[".$tag_id."]"; //echo $tag_id;echo "<br>";
$sql2="select product from i4g_blog where user_id='$user_id' and FIND_IN_SET('$tag_id', tag)";
$num2=Query_db($sql2,'num');//echo $num2;echo "<br>";
$result2=Query_db($sql2,'result');
for ($i=0; $i<$num2; $i++)
{
$row2=Rerult_to_array($result2);
$pro_id.=$row2['product'];//echo $pro_id;echo "<br>";
}//echo $pro_id;
$t = explode(",", $pro_id);
echo count(array_unique($t));
}
?>
========================================
出现的问题:程序的第一层循环之循环一次,第二层循环是得到了属于tag_id的所有记录数,并也能把他们归类在一个数组里面,但最终ECHO出来的总是1,并没有得到这个数组里面的总数;
这个是为什么?
这样就可以了
应该就是你那意思吧
试试看...ˇ—ˇ
while( $array = mysql_fetch_array( $result))
{
$subs = array_merge( $subs, explode(",", $array['prd_id']));
}
echo count(array_unique( $subs));
$rs = mysql_query($sql);
while($row=mysql_fecth($rs))
{
$pro_id .=$row['pro_id'];
}
$array=explode(',',$pro_id)
echo cout($array);
id tag user_id product
1 1,2,3, 3 1,2,3,
2 1,2,4, 3 2,4,5,
3 2,3,4, 3 3,4,5,
$rs = mysql_query($sql);
while($row=mysql_fecth($rs))
{
$pro_id .=$row['pro_id'];
}
$pro_id=substr($pro_id,0,(strlen($pro_id)-1))
$array=explode(',',$pro_id)echo cout($array);