用PHP和MySQL显示查询结果
我正在学习这门新语言用PHP和MySQL显示查询结果,php,mysql,dolibarr,Php,Mysql,Dolibarr,我正在学习这门新语言PHP,以便用这个软件开发模块:Dolibarr 这是我第一次使用PHP,我没有克服在视图中显示查询结果的困难 我想知道我的脚本是否写错了什么,因为到目前为止我还没有完全理解。我想显示我的软件中的用户数。我必须查询我的llx\u user表,并在数组中显示结果 这是我代码的一部分: /* * View */ //Display number of users $sql = "SELECT COUNT(u.rowid) as total"; $sql.= " FROM
PHP
,以便用这个软件开发模块:Dolibarr
这是我第一次使用PHP,我没有克服在视图中显示查询结果的困难
我想知道我的脚本是否写错了什么,因为到目前为止我还没有完全理解。我想显示我的软件中的用户数。我必须查询我的llx\u user
表,并在数组中显示结果
这是我代码的一部分:
/*
* View
*/
//Display number of users
$sql = "SELECT COUNT(u.rowid) as total";
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
$result = $db->query($sql);
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Statistics").'</th></tr>';
if (! empty($conf->user->enabled))
{
$statUsers = '<tr class="oddeven">';
$statUsers.= '<td><a href="index.php">'.$langs->trans("Number of Users").'</a></td><td align="right">'.round($result).'</td>';
$statUsers.= "</tr>";
}
$total=0;
if ($entity == '0')
{
print $statUsers;
$total=round($result);
}
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td align="right">';
print $total;
print '</td></tr>';
print '</table>';
print '</div></div></div>';
llxFooter();
$db->close();
我明白了:
但我的表中有2个用户:
如果你能帮助我,谢谢你你刚刚开始使用PHP,你做得很好。不管怎样,你的代码中有一个小错误 实际上是查询数据库,但不获取结果 查询后,您必须执行以下操作:
$row = $result->fetch_row();
print $row[0]; // $row[0] will contain the value you're looking for
另外,您的
$entity
似乎不等于0。我没有看到你在任何地方初始化这个变量,你确定你已经定义了它吗?希望您能给我们看一些您的代码。谢谢您,您的答案很好!但我有一个问题:什么是fetch_row()
?以及为什么我必须使用$row[0]
而不仅仅是$row
fetch_row()
将为您提供一个包含请求的每列的数组。由于您只请求一列$row[0]
返回该列中的值(因为数组开始计数为零)。如果我理解得很好,那么如果我的查询是:$sql=“选择计数(u.rowid),u.name作为总计”$sql.=“FROM”.MAIN\u DB\u前缀。“用户为u”
我应该为rowid
写$row[0]
,为name
写$row[1]
?@Deadpool遗憾的是,不是。据我所知,你想得到一个包含用户总数的列表,你想得到一个包含所有用户姓名的列表。您应该将这两个查询分为两个查询。一个只包含计数,另一个包含名称select。这仅仅是因为您不能同时使用计数和选择值(据我所知,但我在SQL方面不是很好)。。因此,我建议您使用count进行第一次查询,然后使用SELECT name FROM users
进行第二次查询,您只需访问$row[0]
即可获得第一个用户名,$row[1]
next@Deadpool选择名称查询将为每个用户返回一行。比如说,你可以做一些类似于选择名称,从用户处发送电子邮件的事情,然后你将有$row[0][name]
作为第一个用户名,$row[0][email]
作为第一个用户的邮件等。如果你在一段时间内这样做($result->fetch_row()){`然后你可以通过$row[“name”]从用户处访问所有属性
-因此,如果执行打印$row[“name”]
操作,它将打印每个用户名,因为它在while循环中,并且该循环将针对查询返回的每一行执行(因为每个用户有一行,它将覆盖每个用户)
$row = $result->fetch_row();
print $row[0]; // $row[0] will contain the value you're looking for