我有一个多行的 MySQL 数据库,一列包含一些文本,用逗号分隔。
为了快速了解,我的数据库如下所示:
id | 标签 |
---|---|
1 | wordpress、psd、html |
2 | wordpress、html |
3 | wordpress |
4 | psd |
输出需要是这样的:
标签 | 计数 |
---|---|
wordpress | 3 |
psd | 2 |
html | 2 |
我试试这个
<?php
select tag, count(id) FROM tableee GROUP BY tag
?>
我试试这个
<?php
$query = mysqli_query($con, "SELECT tag FROM tableee ");
$convert_to_array = explode(',' , $row['tag'] );
$key_value = explode('=>', $convert_to_array [2]);
echo count($key_value );
?>
我试试这个
<?php
$query = mysqli_query($con, "SELECT tag FROM tableee ");
while($row=mysqli_fetch_assoc($query))
{
$array = explode(" " ,$row['tag']);
$array2=array();
for($i = 0; $i<count($array); $i++)
{
array_push($array2, $array[$i] );
}
print_r( count($array2) ) ;
}
?>
nbk 解决了这个问题
<?php
$query = mysqli_query($con, "SELECT tag FROM tableee ");
$array2=array();
while($row=mysqli_fetch_assoc($query))
{
$array = explode("," ,$row['tag']);
for($i = 0; $i<count($array); $i++)
{
array_push($array2, trim ($array[$i]) );
}
}
$array3 = array_count_values($array2);
$array4 = array_keys($array3);
print_r( $array4[0] ) ;
print_r( $array3[ $array4[0]]);
?>
答案 0 :(得分:1)
你需要在开始之前初始化array2,否则你总是向它添加一个新数组
计算你需要的数组array_count_values
并且您还需要修剪 splitet 数据,以删除所有前导和尾随空格
最后一个分割你需要一个逗号而不是一个空格
<?php
$query = mysqli_query($mysqli, "SELECT tag FROM tableee ");
$array2=array();
while($row=mysqli_fetch_assoc($query))
{
$array = explode("," ,$row['tag']);
for($i = 0; $i<count($array); $i++)
{
array_push($array2, trim ($array[$i]) );
}
}
$array3 = array_count_values($array2);
$array4 = array_keys($array3);
print_r( $array4[0] ) ;
print_r( $array3[ $array4[0]]);
答案 1 :(得分:0)
我不确定你的问题,但是。您可以对您的行进行爆炸,并计算迭代次数。
<?php
foreach($dataToCount as $dataToExplode){
$explodeToCommas=explode(',',$dataToExplode);
//To understand the function explode do:
var_dump($explodeToCommas);
//count every iteration
$countIteration=count($explodeToCommas);
}
答案 2 :(得分:0)
您可以使用 MYSQL 中称为“char_length”的功能直接在 MYSQL 中实现此目的。
$query = mysqli_query($con, "SELECT id, tag,
(CHAR_LENGTH(tag) - CHAR_LENGTH(REPLACE(tag, ',', '')) + 1) as count
FROM tableee ");
while($row=mysqli_fetch_assoc($query))
{
echo '<td>'.$row ["id"].'</td>';
echo '<td>'.$row["count"].'</td>';
}