【问题标题】:Notice: Undefined variable: table in C:\XAMPP\htdocs\progscores.php on line 27注意:未定义变量:第 27 行 C:\XAMPP\htdocs\progscores.php 中的表
【发布时间】:2015-05-17 12:08:58
【问题描述】:

我有一个带有下拉菜单的表单。每当我选择一个节目时,系统都会显示节目分数表。但是当我选择服务名称时,它不会显示服务表。另外,有没有更好、更快、更高效的方式来显示数据库中的表格?

这是我的表格:

我得到的错误:

progscores.php

  <?php

    include'connect.php';

    $crit=@$_POST['crit'];
    $y2005=@$_POST['y2005'];
    $y2006=@$_POST['y2006'];
    $y2007=@$_POST['y2007'];
    $y2008=@$_POST['y2008'];
    $y2009=@$_POST['y2009'];
    $y2010=@$_POST['y2010'];

    switch($_POST['program'])
    {
          case 'Computer Science':
             $table = 'csprog';
             break;
          case 'BAED':
            $table = 'baedprog';
             break;
          case 'Psychology':
             $table = 'psyprog';
             break;

      }

     $res = mysql_query("SELECT * FROM {$table}");

 ?> 

  <html>
  <body>
  <table width="600" border="1" cellspacing="1">
    <tr>
         <th>Criteria</th>
         <th>2005</th>
         <th>2006</th>
         <th>2007</th>
         <th>2008</th>
         <th>2009</th>
         <th>2010</th>
   </tr>

    <?php
       while($table=mysql_fetch_assoc($res)){

         echo "<tr>";

         echo "<td>".$table['crit']."</td>";

         echo "<td>".$table['y2005']."</td>";

         echo "<td>".$table['y2006']."</td>";

         echo "<td>".$table['y2007']."</td>";

         echo "<td>".$table['y2008']."</td>";

         echo "<td>".$table['y2009']."</td>";

         echo "<td>".$table['y2010']."</td>";

         echo "</tr>";

      }
   ?>
  </table>
  </body>
  </html>


  principal.php

      <?php

          include 'connect.php';

          if($_POST['program']){
             include 'progscores.php';

          }elseif($_POST['services']){
             include 'servscores.php';
          }

        ?> 


   servscores.php


         <?php

            include'connect.php';

            $scrit=@$_POST['scrit'];
            $sy2005=@$_POST['sy2005'];
            $sy2006=@$_POST['sy2006'];
            $sy2007=@$_POST['sy2007'];
            $sy2008=@$_POST['sy2008'];
            $sy2009=@$_POST['sy2009'];
            $sy2010=@$_POST['sy2010'];

            switch($_POST['services'])
            {
                case 'Library':
                   $stable = 'library';
                   break;
                case 'Course Administrator':
                   $stable = 'cadmin';
                   break;
               case 'Front Desk':
                   $stable = 'frontdesk';
                   break;
               case 'Clubs and Societies':
                   $stable = 'clubs';
                   break;
              case 'IT Services and Facilities':
                   $stable = 'itservice';
                   break;
              case 'International Student Office':
                  $stable = 'stoffice';
                   break;
          }

          $res2 = mysql_query("SELECT * FROM {$stable}");

       ?> 

         <html>
         <body>
            <table width="600" border="1" cellspacing="1">
              <tr>
                   <th>Criteria</th>
                   <th>2005</th>
                   <th>2006</th>
                   <th>2007</th>
                   <th>2008</th>
                   <th>2009</th>
                   <th>2010</th>
              </tr>

        <?php
             while($stable=mysql_fetch_assoc($res2)){

              echo "<tr>";

              echo "<td>".$stable['scrit']."</td>";

              echo "<td>".$stable['sy2005']."</td>";

              echo "<td>".$stable['sy2006']."</td>";

              echo "<td>".$stable['sy2007']."</td>";

              echo "<td>".$stable['sy2008']."</td>";

              echo "<td>".$stable['sy2009']."</td>";

              echo "<td>".$stable['sy2010']."</td>";

             echo "</tr>";

         }
       ?>

       </table>
       </body>
       </html>

【问题讨论】:

  • “{”和“}”是干什么用的? var_dump($table) 用于您的查询。为什么使用静态年份而不是 date("Y") 例如?
  • 您的查询不正确 mysql_query() 在成功时返回资源,或在错误时返回 FALSE,这就是您收到该错误的原因
  • 我的猜测是您的 switch 语句不起作用,并且该表始终设置为 null,这就是您的查询返回 false 而不是资源的原因

标签: php mysql html-table


【解决方案1】:

$table 未定义,因为您将其直接声明到 switch 代码块中。所以首先你必须声明

$table=''; 

切换前

由于 $table 未定义,所以出现了第二个警告

【讨论】:

  • 我定义了变量,但是当我选择服务名称时,我仍然收到警告:警告:mysql_fetch_assoc() 期望参数 1 是资源,在 C:\XAMPP\htdocs\progscores.php 中给出的布尔值在第 47 行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
相关资源
最近更新 更多