您好我正在尝试查询已登录的用户可以获得行的pokalista表3值。 无法正确帮助任何人吗?
?php
$user = JFactory::getUser();
if ($user->guest)
{
echo "<h2>Login first.</h2>";
}
else
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('fab_pokalista'));
// it should pickup current login user username and return 3th value of row
// name colum has same values that users real name
$query->where($db->quoteName('name')." = ".$db->quote('$user->name .'));
$db->setQuery($query);
$row = $db->loadRow();
echo "<h3>Hello:</h3><br />";
echo $user->name . '<br />';
echo "<h3>value of query:</h3>";
print_r($row[3]);
}
?>
答案 0 :(得分:2)
您的where
声明中有一个引用错误以及额外的空格和句号,请参阅下一行的粗体部分:
$query->where($db->quoteName('name')." = ".$db->quote( '$user->name .' ));
如果您希望PHP将其转换为您需要使用双引号&#34;的值,那么您在变量引用$user->name
周围使用单引号或者你可以完全删除它们。
使用双引号
$query->where($db->quoteName('name')." = ".$db->quote("$user->name"));
没有引号
$query->where($db->quoteName('name') . " = " . $db->quote($user->name));
<?php
$user = JFactory::getUser();
if ($user->guest)
{
echo "<h2>Login first.</h2>";
}
else
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('fab_pokalista'));
// it should pickup current login user username and return 3th value of row
// name colum has same values that users real name
$query->where($db->quoteName('name') . " = " . $db->quote($user->name));
$db->setQuery($query);
$row = $db->loadRow();
echo "<h3>Hello:</h3><br />";
echo $user->name . '<br />';
echo "<h3>value of query:</h3>";
print_r($row[3]);
}
答案 1 :(得分:0)
我会让代码正常工作,但真正的问题是我的表格。 我使用fabrik组件和用户插件,在后端fabrik显示用户的用户名,但db中的实际数据是用户ID。 编码级别= Noob 感谢你的帮助。 如果有人有一天需要它,这是代码
<?php
$user = JFactory::getUser();
if ($user->guest)
{
echo "<h2>Login first.</h2>";
}
else
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('fab_tablename'));
$query->where($db->quoteName('name') .' = '. $db->quote($user->id));
$db->setQuery($query);
$row = $db->loadRow();
echo "<strong>Hello:</strong><br />";
echo $user->name . '<br />';
echo "<strong>value of query 1</strong><br/>";
print_r($row[1]); echo "<br />";
echo "<strong>value of query 2</strong><br/>";
print_r($row[3]);echo"<strong> €</strong>";
}
?>