Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP编码问题_Php_Mysql - Fatal编程技术网

PHP编码问题

PHP编码问题,php,mysql,Php,Mysql,如何使用PHP从下面的查询MySQL中获取计数值 这是我的MySQL代码 $dbc = mysqli_query($mysqli,"SELECT COUNT(*) FROM((SELECT users_friends.id FROM users_friends INNER JOIN users ON users_friends.user_id = users.user_id

如何使用PHP从下面的查询MySQL中获取计数值

这是我的MySQL代码

$dbc = mysqli_query($mysqli,"SELECT COUNT(*) FROM((SELECT users_friends.id
                            FROM users_friends
                            INNER JOIN users ON users_friends.user_id = users.user_id
                            WHERE users_friends.user_id = 1 
                            AND users_friends.friendship_status = '1')
                            UNION
                            (SELECT users_friends.id
                            FROM users_friends
                            INNER JOIN users ON users_friends.friend_id = users.user_id
                            WHERE users_friends.friend_id = 1
                            AND users_friends.friendship_status = '1')) as friends");

使用SQL\u CALC\u FOUND\u行可以简化:

$dbc = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS users_friends.id
                        FROM users_friends
                        INNER JOIN users ON users_friends.user_id = users.user_id
                        WHERE users_friends.user_id = 1 
                        AND users_friends.friendship_status = '1'
                       ");
那以后呢

$rs = mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
$rec = $rs->fetch_array();
$count = $rec[0];

此方法将返回与查询匹配的记录数,忽略任何LIMIT语句,而使用
$rs->num_rows
只会给出实际返回的记录数。取决于您想要哪个。

假设您已正确连接到MySQL服务器,并且查询已正确执行,则可以使用以下代码:

$values = mysql_fetch_row($dbc);
$count = $values[0];

您的查询应该类似于从xxx选择COUNT(*)as
numThings

numThings是您将在PHP中引用的内容:

$result = mysql_query("SELECT COUNT(*) as `numThings` FROM xxx");
$row = mysql_fetch_assoc($result);
$count = $row['numThings'];

您使用什么连接到数据库?只有
mysql\u查询
函数系列?那里没有PHP代码。如果我们想帮助您,您需要解释显示不工作的PHP代码,并解释您希望它如何工作。
mysql\u result
可能会有用,否则您可以使用别名命名结果,并使用
mysql\u fetch\u assoc
获取它,“选择…!您有错误消息吗?请发布它。很好,我自己还没有使用过。手动参考:使用SQL\u CALC\u FOUND\u行是低效的。除非您想计算结果并获取它们,否则使用count(*)函数更好。@Doug如果您有关于它的效率的任何信息,我会感兴趣的(不是讽刺),但他正在计算和获取示例答案上的代码确实获取结果,但原始问题中的代码没有。如果原始预期结果只是计算记录,则计数(*)会更好。如果必须计数和获取记录,则使用SQL\u CALC\u FOUND\u ROWS具有更好的性能,因为它可以在一次操作中计数和获取结果。在这种情况下,使用count(*)然后再次执行查询以获取记录是不够的。
$result = mysql_query("SELECT COUNT(*) as `numThings` FROM xxx");
$row = mysql_fetch_assoc($result);
$count = $row['numThings'];