我在MYSQL中有一个表(table3),有99个文本字段(field1,filed2,...,field99)。我想计算每个字段的非空值,所以我写了一个带有for循环的简单php脚本,如下所示:
for($i = 1; $i <= 99; $i++)
{
$sqlstm = "SELECT COUNT(field$i) FROM table3 WHERE field$i IS NOT NULL AND field$i <> '';";
$r = @mysqli_query($dbc, $sqlstm);
if($r)
{
while($row = @mysqli_fetch_array($r))
{
echo "<p>$row[0]</p>\n";
}
}
else
{
echo "field $i error: " . mysqli_error($dbc);
}
}
但是在显示四个值(field1到filed4)并且没有错误消息后循环停止。我确实拥有表格3中所有99个字段和数据,我可以手动为任何字段运行查询。这可能是由于浏览器超时? 有人能帮我吗?感谢。
答案 0 :(得分:-4)
$sqlstm = "SELECT COUNT(field$i) FROM table3
你在这里选择列,你的表有99行,但显然只有4列
你最好做的是
$sqlstm = "SELECT * FROM table3 WHERE (column name) IS NOT NULL";
$count = 0
for($sqlstm as $one) {
$count = $count + 1;
}
echo($count);
或沿着这些方向的东西