Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
用sql计算php中的行数_Php_Mysql_Mysqli - Fatal编程技术网

用sql计算php中的行数

用sql计算php中的行数,php,mysql,mysqli,Php,Mysql,Mysqli,对于一个应用程序,我试图计算朋友的总数。我想用一个函数来实现这一点,但它没有返回任何东西。它告诉我: 警告:mysqli_query()至少需要2个参数,1个给定 但我只需要一个参数。我想我完全错了 这就是功能: public function GetTotalOfFriends($user_id){ $db = new Db(); $select = "SELECT COUNT FROM friendship WHERE (friendship_recipient_id ='"

对于一个应用程序,我试图计算朋友的总数。我想用一个函数来实现这一点,但它没有返回任何东西。它告诉我:

警告:mysqli_query()至少需要2个参数,1个给定

但我只需要一个参数。我想我完全错了

这就是功能:

public function GetTotalOfFriends($user_id){
    $db = new Db();
    $select = "SELECT COUNT FROM friendship WHERE (friendship_recipient_id ='" . $user_id ."' OR friendship_applicant_id = '" . $user_id . "') AND friendship_status = 'accepted'";
    $result = $db->conn->query($select);
    $row = mysqli_query($result);
    $total = $row[0];
    echo $total;
我试着用这种方式打印出来:

$friend = new Friendship;
$numberoffriends = $friend->GetTotalOfFriends($user_id);

<?php echo $numberoffriends; ?>
$friend=新的友谊;
$numberoffriends=$friends->GetTotalOfFriends($user\u id);

你把一些事情搞混了。行
$result=$db->conn->query($select)
似乎已经执行了一个查询,但是您试图绕过数据库包装器,将该查询结果再次传递给
mysqli\u query

除此之外,我认为你的质疑本身也是错误的<代码>计数需要一个参数,指示要计数的字段或值。通常使用
COUNT(*)
,但在某些情况下
COUNT('x')
可能更有效。您还可以使用特定的字段名,
COUNT
将为您计算非空值

您得到的结果是一个mysql_result对象,您需要使用它来获取查询结果的实际数据。 我建议你仔细阅读

一种可能的方法是使用以下方法:

$resultArray = $result->fetch_row();
这将导致查询的第一(也是唯一)行。它表示为一个数组,只有一个值(因为查询只返回一列)。您可以按如下方式获取该值:

return $resultArray[0];

如果您希望以不同的方式获取数据,您也可以使用任何其他获取方法。

查看您需要传递连接和查询,而不是结果我编辑了我的代码,但现在他说:mysqli_result类的对象无法转换为stringYes,您需要从结果对象获取实际数据,但是您不应该再次调用
mysqli\u query
,因为这是首先为您提供对象的方法的过程版本。我已经用一些代码、更多的解释和一个有用的链接更新了我的答案。