我正在尝试计算 MySQL 数据库中的行数并使用 PHP 报告该数字。我已经阅读了所有文档,我认为这段代码应该可以工作,但无论我尝试什么,它都会失败。
<?php
session_start();
if ( isset($_SESSION['username']) ) {
$username = $_SESSION['username'];
$q = "SELECT * FROM messages WHERE recepiants='$username' AND readcheck='T'";
$count = mysql_num_rows($q);
?>
<div class="user_info">Logged in as <?php echo $username; ?> | <a href="admin.php">Add a post</a> | <a href="experiment.php">View Posts</a> | <a href="inbox.php">Message Center <?php echo $count; ?> </a> | <a href="logout.php">Log Out</a></div>
<?php } else {?>
脚本成功报告了 $username
但 $count
没有返回数字。有任何想法吗?我在某处缺少括号或分号吗?
最佳答案
mysql_num_rows需要一个查询资源——你正在提供一个字符串。您需要先执行查询,然后才能期望知道有关其结果的任何信息。
$sql = "SELECT * FROM messages WHERE recepiants='$username' AND readcheck='T'";
if(!$query = mysql_query($sql))
trigger_error(mysql_error().' SQL: '.$sql);
$count = mysql_num_rows($query);
我怀疑上面的代码也会根据您在查询中输入“收件人”的错误而产生错误。始终检查 mysql_query
的返回值。
编辑:正如 jeroen 所指出的,如果您粘贴的是该页面的全部代码,那么您就忽略了打开数据库连接。参见 mysql_connect和 mysql_select_db .
关于php - 计算 MySQL 行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5503966/