Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过避免重复来显示来自两个表的数据?_Php_Mysql - Fatal编程技术网

Php 如何通过避免重复来显示来自两个表的数据?

Php 如何通过避免重复来显示来自两个表的数据?,php,mysql,Php,Mysql,这是我正在做的,我有两个表,一个是分类表,另一个是软件表 类别表如下所示 cid name 1 Anti-malware id title catid 1 Avast 1 和软件表如下所示 cid name 1 Anti-malware id title catid 1 Avast 1 catid等于cid,可以说catid是类别的id 这是我目

这是我正在做的,我有两个表,一个是分类表,另一个是软件表

类别表如下所示

cid      name
1        Anti-malware
id       title     catid
1        Avast        1
和软件表如下所示

cid      name
1        Anti-malware
id       title     catid
1        Avast        1
catid等于cid,可以说catid是类别的id

这是我目前的代码

 require('config/db.php');
 $cateq="SELECT * FROM softwares A INNER JOIN categories B ON A.catid=B.cID "; 
  $cateresult=mysql_query($cateq);


    define('MAX_TITLES_PER_CAT',5);

    $cat='';
    $tcount=0;
    while ($row =mysql_fetch_array($cateresult)){
                    $title=$row['title'];
                    $softid=$row['id'];
                    $cateid=$row['cid'];
                    $check_pic = "admin/images/icons/".$softid."/image01.jpg";

                    if (file_exists($check_pic)) {
                          $icon = "<img src=\"$check_pic\" class=\"home_icon\"    />"; 
                             } else {
                              $icon = "<i class=\"icon-archive\"></i>"; 
                               }

                    if ($row['name']!=$cat) {

                            if ($cat!='') echo '</div>';
                             $cat=$row['name'];
                               $tcount=MAX_TITLES_PER_CAT;
                                echo "<div class=\"widget white_box\"><h3 class=\"widget_title\"><a href=\"categories.php?cid=$cateid\">".$cat." <i class=\"icon-chevron-right\"></i></a></h3><ul>";
                                }


                      if ($tcount--<=0) continue;
                      echo '<li>'.$icon.' <a href=\'software-profile.php?pid='.$softid.'\'>'.$title.'</a></li>';


                       }  
                    if ($cat!='') echo '</ul></div>';
require('config/db.php');
$cateq=“从A.catid=B.cID上的软件A内部联接类别B中选择*”;
$catesult=mysql\u查询($cateq);
定义(“每个类别的最大标题”,5);
$cat='';
$t帐户=0;
while($row=mysql\u fetch\u数组($catesult)){
$title=$row['title'];
$softid=$row['id'];
$cateid=$row['cid'];
$check_pic=“admin/images/icons/”$softid./image01.jpg”;
如果(文件存在($check_pic)){
$icon=“”;
}否则{
$icon=“”;
}
如果($row['name']!=$cat){
如果($cat!='')回显“”;
$cat=$row['name'];
$t数量=每只猫的最大标题数;
回声“
    ”; }
    if($tcount--在解析查询结果时,假设行是按类别排序的(
    if($row['name']!=$cat)
    ),但如果没有
    order by
    子句,则不能保证任何顺序


    ORDER BY name
    添加到查询的末尾。

    可以通过对数据排序来解决此问题:
    SELECT*FROM softwares A internal JOIN categories B ON A.catid=B.cID ORDER BY B.cID