计算MySQL行数

Tho*_*mas 0 html php mysql

我试图计算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 {?> 
Run Code Online (Sandbox Code Playgroud)

脚本成功报告$username$count不返回数字.有任何想法吗?我在某个地方错过了支架或分叉吗?

can*_*lin 8

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);
Run Code Online (Sandbox Code Playgroud)

我怀疑上面的代码也会根据你查询中"收件人"的错误产生错误.始终检查返回值mysql_query.

编辑:正如jeroen所说,如果您粘贴的是该页面的整个代码,那么您忽略了打开数据库连接.请参阅mysql_connectmysql_select_db.


Jar*_*ish 6

您缺少的是运行实际查询:

<?php
session_start();
if ( isset($_SESSION['username']) ) {
    $username = $_SESSION['username'];
    $q = "SELECT * FROM messages WHERE recepiants='$username' AND readcheck='T'";
    $result = mysql_query($q);
    $count = mysql_num_rows($result);
?>
<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 {?> 
Run Code Online (Sandbox Code Playgroud)

可能更好的是COUNT在查询中运行a ,如果这就是你需要的:

<?php
session_start();
if ( isset($_SESSION['username']) ) {
    $username = $_SESSION['username'];
    $q = "SELECT COUNT(*) AS Count FROM messages WHERE recepiants='$username' AND readcheck='T'";
    $result = mysql_query($q);
    $result = mysql_fetch_assoc($result)
    $count = $result['Count'];
?>
<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 {?> 
Run Code Online (Sandbox Code Playgroud)

而且,正如其他人所说,您需要一个活动的数据库连接.

http://www.php.net/manual/en/function.mysql-fetch-assoc.php