Joomla数据库查询3.2

时间:2014-03-16 08:56:18

标签: mysql joomla

您好我正在尝试查询已登录的用户可以获得行的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]);
}
?>

2 个答案:

答案 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>";
}
?>