Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 在表中显示mysql_fetch_assoc的结果_Php_Mysql_Mysqli - Fatal编程技术网

Php 在表中显示mysql_fetch_assoc的结果

Php 在表中显示mysql_fetch_assoc的结果,php,mysql,mysqli,Php,Mysql,Mysqli,我正在使用函数mysql\u fetch\u assoc返回数据库中的数据,但我不知道如何将结果打印到表中。 下面是执行该过程的代码 $number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'"; $res_qry = mysql_query($num

我正在使用函数
mysql\u fetch\u assoc
返回数据库中的数据,但我不知道如何将结果打印到表中。 下面是执行该过程的代码

$number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

$rowqry = mysql_fetch_assoc($res_qry);
$number_date = $rowqry ['number_of_date'];
<tr>
    <?php while($rowqry = mysql_fetch_assoc($res_qry)) { ?>
        <td><?php echo $rowqry ['number_of_date']?></td>
    <?php } } ?>
</tr>
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error()); $rowqry=mysql\u fetch\u assoc($res\u qry); $number_date=$rowqry['number_of_date'];


它不起作用。显示此结果的正确方法是什么?

删除第一个mysql\u fetch\u assoc()

$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error());
删除第一个mysql\u fetch\u assoc()

$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error());
您的构造似乎格式不正确。试试另一个:

    <?php
        $number_of_date = "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
        $res_qry        = mysql_query($number_of_date)
        or die ('Invalid query :: <br/>'. $number_of_date . ' <br/>' . mysql_error());

        //$rowqry         = mysql_fetch_assoc($res_qry);    // <== NOT NECESSARY SINCE YOU ARE GOING TO LOOP OVER THE RESULT
        //$number_date    = $rowqry ['number_of_date'];     // <== NOT NECESSARY SINCE YOU ARE GOING TO LOOP OVER THE RESULT

    ?>
    <tr>
        <?php while($rowqry = mysql_fetch_assoc($res_qry)) : ?>
            <td><?php echo $rowqry ['number_of_date']?></td>
         <?php endwhile; ?>
    </tr>

您的构造似乎格式不正确。试试另一个:

    <?php
        $number_of_date = "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
        $res_qry        = mysql_query($number_of_date)
        or die ('Invalid query :: <br/>'. $number_of_date . ' <br/>' . mysql_error());

        //$rowqry         = mysql_fetch_assoc($res_qry);    // <== NOT NECESSARY SINCE YOU ARE GOING TO LOOP OVER THE RESULT
        //$number_date    = $rowqry ['number_of_date'];     // <== NOT NECESSARY SINCE YOU ARE GOING TO LOOP OVER THE RESULT

    ?>
    <tr>
        <?php while($rowqry = mysql_fetch_assoc($res_qry)) : ?>
            <td><?php echo $rowqry ['number_of_date']?></td>
         <?php endwhile; ?>
    </tr>

实际上您已经使用了两次
mysql\u fetch\u assoc
函数如果您使用的是内部循环,那么为什么要使用外部循环如果您使用的是外部循环,则表示您已经获取了一条记录,然后光标移动到下一条记录获取。如果在数据库中只有一条记录,那么在循环中您将一无所获,因为您已经在循环外获取了一条记录。在第二种情况下,如果数据库中存在多条记录,那么您将从循环中的第二条记录中获得输出,因为您已经使用了2次mysql\u fetch\u assoc
。所以请用下面的代码替换您的代码

$number_of_date = "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

<tr>
    <?php while($rowqry = mysql_fetch_assoc($res_qry)) { ?>
        <td><?php echo $rowqry ['number_of_date']?></td>
    <?php } } ?>
</tr>
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error());

试试这个,你的问题就会解决。

实际上你已经使用了两次
mysql\u fetch\u assoc
函数如果你使用的是内部循环,那么为什么要使用外部循环如果你使用的是外部循环,则表示你已经获取了一条记录,然后光标移动到下一条记录获取。如果在数据库中只有一条记录,那么在循环中您将一无所获,因为您已经在循环外获取了一条记录。在第二种情况下,如果数据库中存在多条记录,那么您将从循环中的第二条记录中获得输出,因为您已经使用了2次mysql\u fetch\u assoc
。所以请用下面的代码替换您的代码

$number_of_date = "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

<tr>
    <?php while($rowqry = mysql_fetch_assoc($res_qry)) { ?>
        <td><?php echo $rowqry ['number_of_date']?></td>
    <?php } } ?>
</tr>
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error());

尝试此操作,您的问题可能会得到解决。

通过使用
mysql\u fetch\u assoc()
两次,您已经将结果的第一行分配给了
$rowqry
。在您的查询中,由于选择了所有结果的
SUM()
,因此您将只有一行结果,这样就不会在
while循环()中留下更多的结果

您只需删除
while loop()
,因为这是不必要的,因为您只会得到一行

另外,您提供的代码、HTML实体都在PHP中。使用
echo

$number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

$rowqry = mysql_fetch_assoc($res_qry);
$number_date = $rowqry['number_of_date'];

echo '<tr>
          <td>'.$number_date.'</td>
      </tr>';
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error()); $rowqry=mysql\u fetch\u assoc($res\u qry); $number_date=$rowqry['number_of_date']; 回声' “.$number_date” ';

注意:使用扩展名而不是弃用的扩展名。

通过两次使用
mysql\u fetch\u assoc()
,您已经将结果的第一行分配给了
$rowqry
。在您的查询中,由于选择了所有结果的
SUM()
,因此您将只有一行结果,这样就不会在
while循环()中留下更多的结果

您只需删除
while loop()
,因为这是不必要的,因为您只会得到一行

另外,您提供的代码、HTML实体都在PHP中。使用
echo

$number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

$rowqry = mysql_fetch_assoc($res_qry);
$number_date = $rowqry['number_of_date'];

echo '<tr>
          <td>'.$number_date.'</td>
      </tr>';
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res_qry=mysql_query($number_of_date)或die($Invalid query::
。$number_of_date。
。mysql_error()); $rowqry=mysql\u fetch\u assoc($res\u qry); $number_date=$rowqry['number_of_date']; 回声' “.$number_date” ';

注意:使用扩展,而不是不推荐使用的扩展。

首先,我建议将所有mysql函数更改为MySQLi函数。但是,出于提问的目的->代码的问题在于循环变量后面有空格$res_qry['variable']与$res_qry['variable']不同

$number_of_date= "SELECT SUM(number_of_date) AS number_of_date FROM emp_leaves WHERE  emp_id='$userID' AND leave_category='Annual' AND apply_year='$year'";
$res_qry = mysql_query($number_of_date) or die ('Invalid query :: <br/>'.$number_of_date.' <br/>'.mysql_error());

<tr>
    <?php while($rowqry = mysql_fetch_assoc($res_qry)) { ?>
        <td><?php echo $rowqry['number_of_date']?></td>
    <?php } } ?>
</tr>
$number\u of_date=“选择SUM(number\u of_date)作为emp_leaves中的number\u of_date,其中emp_id='$userID',leave_category='Annual',apply_year='$year';
$res\u qry=mysql\u q