我有一个x列数的mysql表。我想检查特定列的行是否为空..
目前我有:
$query10 ("SELECT count(*) FROM content WHERE linkname IS NOT NULL") or die(mysql_error());
$result10 = mysql_query($query10);
$row10 = mysql_fetch_assoc($query10);
echo $row10['0'];
但是我收到了一个错误:
致命错误:函数名称必须是第227行中的字符串
在我使用num_rows之前,我从未使用过计数..但似乎无法使用它...
所以说清楚,我的表看起来像
| column1 | column2 | column3 |
--------------------------------------------
| a | b | |
---------------------------------------------
| a2 | b2 | c2 |
----------------------------------------------
| a3 | b3 | |
我想计算非空列的al3行,因此在这种情况下,count的结果应为1。
计数会产生以下错误:
mysql_fetch_assoc()期望参数1为资源,字符串为
非常感谢
答案 0 :(得分:1)
您需要使用<> ''
IS NOT NULL
个身份
SELECT count(*) FROM content WHERE linkname <> ''
正如 Murtaza Bhurgri 所说$query10 ("SELECT count(*) FROM content WHERE linkname IS NOT NULL") or die(mysql_error());
这肯定会给出错误。它应该像
$query10 = "SELECT count(*) FROM content WHERE linkname <> ''";
$result10 = mysql_query( $query10 );
if ( !$result10 ) {
die( 'Invalid query: ' . mysql_error() );
}
$row10 = mysql_fetch_assoc($result10);
echo $row10[0];
答案 1 :(得分:0)
我提出了这个,这有效:
$query10 = "SELECT count(*) as total FROM content WHERE linkname <> '' AND content.album_id = $album_id ";
$result10 = mysql_query( $query10 );
if ( !$result10 ) {
die( 'Invalid query: ' . mysql_error() );
}
$row10 = mysql_fetch_assoc($result10);
echo "zo veel:".$row10[total];
我添加了&#39; content.album_id = $ album_id&#39;,因为我只想要更具体的列
抱歉处于弃用状态..
答案 2 :(得分:0)
mysql_connect('localhost', 'root', 'password');
mysql_select_db('database');
$query10 = "SELECT COUNT(linkname) AS linkname_rows_count FROM tbl WHERE linkname != '' AND linkname IS NOT NULL";
$result10 = mysql_query($query10);
if(isset($result10)) {
$row10 = mysql_fetch_assoc($result10);
echo $row10['linkname_rows_count'];
}
您提到的特定列中的行可能包含空字符串或null
值。您使用的查询仅检查null
值。此外,每当您对其参数中传递的列使用COUNT
函数时,请为其指定别名以使result set
易于处理。
此外,您的代码使用已弃用的mysql
扩展名。您需要迁移到mysqli
或PDO
以保护您的代码免受SQL Injection
等攻击。所以,我还给了你使用mysqli
函数编写的替代代码。
$con = mysqli_connect('localhost', 'root', 'password', 'database');
$sql = "SELECT COUNT(linkname) AS linkname_rows_count FROM tbl WHERE linkname != '' AND linkname IS NOT NULL";
$query = mysqli_query($con, $sql);
if(isset($query)) {
$result = mysqli_fetch_assoc($query);
echo $result['linkname_rows_count'];
}
希望它有所帮助!