我想请求帮助以显示有关在数据库中进行的查询的一些信息。 我有一张名为newtest的表。 在此表中,我有3个字段=> (id,namevalue和num)。 在使用phpmyadmin或adminer的查询中,我可以按照我想要的方式整齐地显示信息。 例如,我有以下内容:
DROP TABLE IF EXISTS `newtest`;
CREATE TABLE `newtest` (
`id` int(11) NOT NULL,
`namevalue` char(30) NOT NULL,
`num` char(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `newtest` (`id`, `namevalue`, `num`) VALUES
(1, 'X', '10.55.1.100'),
(2, 'X', '10.55.1.101'),
(3, 'X', '10.55.1.102'),
(4, 'X', '10.55.1.103'),
(5, 'X', '10.55.1.104'),
(6, 'X', '10.55.1.105'),
(7, 'X', '10.55.1.106'),
(8, 'Y', '10.55.1.107'),
(9, 'Y', '10.55.1.108'),
(10, 'Y', '10.55.1.109'),
(11, 'Y', '10.55.1.110'),
(12, 'Y', '10.55.1.111'),
(13, 'Y', '10.55.1.112'),
(14, 'Y', '10.55.1.113'),
(15, 'Y', '10.55.1.114'),
(16, 'Y', '10.55.1.115'),
(17, 'Y', '10.55.1.116');
在使用命令的简单查询中:
SELECT SQL_CALC_FOUND_ROWS MIN(`num`), MAX(`num`), `namevalue` FROM `
newtest` GROUP BY `namevalue`
我有回报:
MIN(`num`) MAX(`num`) namevalue
10.55.1.100 10.55.1.106 X
10.55.1.107 10.55.1.116 Y
然而,当在php中播放并尝试显示我有错误时,虽然namevalue(X和Y)中的值,但不显示每个'X'和'Y'的最小值和最大值正常显示。 以下是PHP代码的摘录。
$myquery = "SELECT SQL_CALC_FOUND_ROWS MIN(`num`), MAX(`num`), `namevalue` FROM `newtest` GROUP BY `namevalue`";
$To_info = $PDO->prepare($myquery);
$To_info->execute();
</div>
</div>
<div class="col-md-12">
<div class="info-box">
<div class="box-body table-responsive no-padding">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 10%">Type</th>
<th style="width: 10%">MaxValue...</th>
<th style="width: 10%">MinValue...</th>
</tr>
</thead>
<tbody>
<?php
while ($VFor = $To_info->fetch(PDO::FETCH_ASSOC)):
echo '<td>' . $VFor['namevalue'] . '</td>';
echo '<td>' . $VFor['num'] . '</td>';
echo '</tr>';
endwhile;
?>
</tbody>
</table>
</div>
</div>
</div>
我的结果是:
Type MaxValue... MinValue...
X
Y
如何加载X和Y旁边的最小值和最大值?
答案 0 :(得分:0)
问题在于MIN(num)
和MAX(num)
不会在您的数组中$VFor['num']
。尝试将查询(命名变量)更改为:
$myquery = "SELECT SQL_CALC_FOUND_ROWS MIN(`num`) AS minv, MAX(`num`) AS maxv, `namevalue` FROM `newtest` GROUP BY `namevalue`";
然后改变
echo '<td>' . $VFor['num'] . '</td>';
到
echo '<td>' . $VFor['minv'] . '</td>';
echo '<td>' . $VFor['maxv'] . '</td>';