Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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_Select_Webstore - Fatal编程技术网

PHP代码并没有在站点中显示来自数据库的所有结果,而是在数据库中显示它们

PHP代码并没有在站点中显示来自数据库的所有结果,而是在数据库中显示它们,php,mysql,select,webstore,Php,Mysql,Select,Webstore,在将所有适当的类别打印到选择输入中时遇到一点问题。现在,它应该添加所有有子类的类别。问题是,这并不完全正确。它只显示主类别中的第一个项目以及属于它的子类别,但不显示下一个主类别项目 例如: 主要类别:陷阱 小类:塔马 子类别子类别:星声 主要类别:钹 子类别:Paiste 它只显示第一个主要类别(例如陷阱)以及与之相关的所有内容 我还希望它显示那些没有子类别的类别和那些有子类别的类别 $result = mysql_query("SELECT COUNT(nimi) AS kpl FROM

在将所有适当的类别打印到选择输入中时遇到一点问题。现在,它应该添加所有有子类的类别。问题是,这并不完全正确。它只显示主类别中的第一个项目以及属于它的子类别,但不显示下一个主类别项目

例如:

  • 主要类别:陷阱 小类:塔马 子类别子类别:星声

  • 主要类别:钹 子类别:Paiste

  • 它只显示第一个主要类别(例如陷阱)以及与之相关的所有内容

    我还希望它显示那些没有子类别的类别和那些有子类别的类别

      $result = mysql_query("SELECT COUNT(nimi) AS kpl FROM samppa_kategoriat");
      $row = mysql_fetch_array($result);
      $kpl = $row['kpl'];
      mysql_free_result($result);
      $sql = "SELECT
       samppa_kategoriat.nimi AS KatNimi,
       samppa_kategoriat.layer AS layerA,
       samppa_kategoriat.children AS lapsetA,
       samppa_alikategoriat.nimi AS AliNimi,
       samppa_alikategoriat.layer AS layerB,
       samppa_alikategoriat.parent AS parentA, 
       samppa_alikategoriat.children AS lapsetB,
       samppa_alikategoriatB.nimi AS AliNimiB, 
       samppa_alikategoriatB.parent AS parentB,
       samppa_alikategoriatB.layer AS layerC 
       FROM 
       samppa_kategoriat, 
       samppa_alikategoriat,
       samppa_alikategoriatB
      WHERE
       (samppa_kategoriat.nimi = samppa_alikategoriat.parent
      AND samppa_alikategoriat.nimi = samppa_alikategoriatB.parent)";
      $res = mysql_query($sql);
      $i = 0;
      while($n = mysql_fetch_object($res)){
      $countA[$i]   = mysql_real_escape_string(strip_tags($n->lapsetA));
      $countB[$i]   = mysql_real_escape_string(strip_tags($n->lapsetB));
      $nimiA[$i]    = mysql_real_escape_string(strip_tags($n->KatNimi));
      $nimiB[$i]    = mysql_real_escape_string(strip_tags($n->AliNimi));
      $nimiC[$i]    = mysql_real_escape_string(strip_tags($n->AliNimiB));
      $parentA[$i]  = mysql_real_escape_string(strip_tags($n->parentA));
      $parentB[$i]  = mysql_real_escape_string(strip_tags($n->parentB));
      $layerA[$i]   = mysql_real_escape_string(strip_tags($n->layerA));
      $layerB[$i]   = mysql_real_escape_string(strip_tags($n->layerB));
      $layerC[$i]   = mysql_real_escape_string(strip_tags($n->layerC));
      $i++;
      }
      for($i=1;$i<$kpl;$i++){
        echo "<option>$nimiA[$i] = $countA[$i] </option>";
    
        for($i=0;$i<$countA[$i];$i++){
          echo "<option>- $nimiB[$i] = $countB[$i]</option>";
        }
          for($i=0;$i<$countB[$i];$i++){
          echo "<option>-- $nimiC[$i]</option>";
          }
         }
    
    
    
            mysql_free_result($res);
            mysql_close($conn);
    
    $result=mysql\u query(“从samppa\u kategoriat选择COUNT(nimi)作为kpl”);
    $row=mysql\u fetch\u数组($result);
    $kpl=$row['kpl'];
    mysql_free_result($result);
    $sql=“选择
    samppa_kategoriat.nimi作为KatNimi,
    samppa_kategoriat.层作为层,
    samppa_kategoriat.孩子们都是失败者,
    samppa_alikategoriat.nimi作为AliNimi,
    samppa_alikategoriat.层作为层B,
    samppa_alikategoriat.作为父母的父母,
    samppa_alikategoriat.儿童是结核病患者,
    samppa_alikategoriatB.nimi作为AliNimiB,
    samppa_alikategoriatB.作为父母的父母B,
    samppa_alikategoriatB.层作为层C
    从…起
    samppa_kategoriat,
    samppa_alikategoriat,
    samppa_alikategoriatB
    哪里
    (samppa_kategoriat.nimi=samppa_alikategoriat.parent
    和samppa_alikategoriat.nimi=samppa_alikategoriatB.parent)”;
    $res=mysql\u查询($sql);
    $i=0;
    而($n=mysql\u fetch\u object($res)){
    $countA[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->transferta));
    $countB[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->transfertb));
    $nimiA[$i]=mysql\u real\u escape\u字符串(strip\u标签($n->KatNimi));
    $nimiB[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->AliNimi));
    $nimiC[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->AliNimiB));
    $parentA[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->parentA));
    $parentB[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->parentB));
    $layerA[$i]=mysql\u real\u escape\u字符串(strip\u标签($n->layerA));
    $layerB[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->layerB));
    $layerC[$i]=mysql\u real\u escape\u字符串(strip\u标记($n->layerC));
    $i++;
    }
    
    对于($i=1;$i

    您在for循环中使用了相同的变量名

    for($i=1;$i<$kpl;$i++){
      echo "<option>$nimiA[$i] = $countA[$i] </option>";
    
      for($i=0;$i<$countA[$i];$i++){
        echo "<option>- $nimiB[$i] = $countB[$i]</option>";
      }
    
      for($i=0;$i<$countB[$i];$i++){
        echo "<option>-- $nimiC[$i]</option>";
      }
    }
    

    for($i=1;$i只是一个旁注-您应该转义数据(使用
    mysqli\u real\u escape\u string
    -而不是
    mysql\u*
    函数,因为它们已被弃用)当你把它放进数据库时。当你把它拿出来时,你应该使用类似于
    htmlentities
    的东西来为HTML目的对它进行编码。它确实发生了变化,它显示了第一个类别以及属于它的所有子类别,但当它显示第二个主类别项目时,它显示了第一个类别的子类别代替第二大类子类是的,因为您将所有内容都称为$i。此外,此处的索引必须更改为$j.$countA[$i]好的,我在每个For循环中将所有$I都更改为其他内容。现在,我们即将解决它。现在,它发布了两次相同的主类别及其子类别。因此,我尝试在echo“$nimiA[$I]”中手动分配数组编号你猜怎么着?似乎数组编号0和1都是相同的主类别,2和3是第二个主类别。为什么不将它添加到第二个数组编号中,在这种情况下,它将是1?因为现在的问题似乎是为什么它根本不会显示另一个主类别,而是显示同一个主类别两次。