如何在 PHP 中获取数组中的唯一值
How to get unique value in array in PHP
我的数据库
Tables_sup |
+------------------+
| supid |
scompany |
| scategory |
| smarket |
|
我的PHP代码
<?php
require_once 'DBConnect.php';
$con = mysqli_connect("localhost","gb","123");
if (!$con) {
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($con,"test_database");
$sql=mysqli_query($con,'SELECT DISTINCT sup.supid,sup.smarket FROM sup order by supid desc');
$i=0;
$dyn_table='<table border="1" cellpadding="10">';
while($row=mysqli_fetch_array($sql)){
$supid = $row["supid"];
$smarket = $row["smarket"];
if ($i%5==0){
$dyn_table.='<tr><td>'.$smarket. '<td>';
}else{
$dyn_table.='<td>'.$smarket. '<td>';
}
$i++;
}
$dyn_table.= '<tr><table>' ;
?>
我的HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php echo $dyn_table;?>
</body>
</html>
我的问题
结果还可以,但是用 duplicate.How 得到唯一的结果?
根据你的情况,你可以尝试group by
功能。
假设你的 sup table 的 id 列是主键,因此无论如何都是唯一的,你的不同查询没有意义 - 每个找到的结果都有不同的 id,因此它可以 return 具有相同市场的多行。
查询不同的 smarket(没有 supid),你会得到你想要的结果集
SELECT DISTINCT smarket FROM sup
我在您的table构造中也看到了一些错误(例如关闭 tr 标签)
// every fifth row is gonna be different?
if ($i%5==0){
$dyn_table.='<tr class="fifthrow"><td>'.$smarket. '</td></tr>';
}else{
$dyn_table.='<tr><td>'.$smarket. '</td></tr>';
}
最后,不要打开另一个 tr 和 table ;) $dyn_table.= '</table>' ;
编辑:忘记为 table
添加一些结束标签
我的数据库
Tables_sup |
+------------------+
| supid |
scompany |
| scategory |
| smarket |
|
我的PHP代码
<?php
require_once 'DBConnect.php';
$con = mysqli_connect("localhost","gb","123");
if (!$con) {
die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($con,"test_database");
$sql=mysqli_query($con,'SELECT DISTINCT sup.supid,sup.smarket FROM sup order by supid desc');
$i=0;
$dyn_table='<table border="1" cellpadding="10">';
while($row=mysqli_fetch_array($sql)){
$supid = $row["supid"];
$smarket = $row["smarket"];
if ($i%5==0){
$dyn_table.='<tr><td>'.$smarket. '<td>';
}else{
$dyn_table.='<td>'.$smarket. '<td>';
}
$i++;
}
$dyn_table.= '<tr><table>' ;
?>
我的HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php echo $dyn_table;?>
</body>
</html>
我的问题 结果还可以,但是用 duplicate.How 得到唯一的结果?
根据你的情况,你可以尝试group by
功能。
假设你的 sup table 的 id 列是主键,因此无论如何都是唯一的,你的不同查询没有意义 - 每个找到的结果都有不同的 id,因此它可以 return 具有相同市场的多行。
查询不同的 smarket(没有 supid),你会得到你想要的结果集
SELECT DISTINCT smarket FROM sup
我在您的table构造中也看到了一些错误(例如关闭 tr 标签)
// every fifth row is gonna be different?
if ($i%5==0){
$dyn_table.='<tr class="fifthrow"><td>'.$smarket. '</td></tr>';
}else{
$dyn_table.='<tr><td>'.$smarket. '</td></tr>';
}
最后,不要打开另一个 tr 和 table ;) $dyn_table.= '</table>' ;
编辑:忘记为 table
添加一些结束标签