Php echo中的函数为什么会出错?

Php echo中的函数为什么会出错?,php,sql,function,echo,Php,Sql,Function,Echo,我在这里和其他论坛上阅读了一些主题,并找到了在echo中设置函数的方法。 但它没有显示我的东西。 我的代码 echo” 选择人: ,选择_kunde() "; 我的职能: function choose_kunde() { require './config/config.inc.php'; if($result2 = mysqli_query($db, "SELECT kunden_id, vname, nname FROM kunden")) {

我在这里和其他论坛上阅读了一些主题,并找到了在echo中设置函数的方法。 但它没有显示我的东西。 我的代码

echo”
选择人:
,选择_kunde() ";
我的职能:

   function choose_kunde()
{
    require './config/config.inc.php';
    if($result2 = mysqli_query($db, "SELECT kunden_id, vname, nname FROM kunden"))
    {
        echo "<select name='kunde_a'>";
        while($adr = mysqli_fetch_assoc($result2))
        {
            echo "<option value='".$adr['vname']."|".$adr['nname']."|".$adr['kunden_id']."'>".$adr['vname']." ".$adr['nname']."</option>";
        }
        echo "</select>";
    }
    else
    {
        echo "Daten konnten nicht aus der Datenbank gelesen werden.<br>";
        echo mysqli_error($db);
    }
}
函数选择_kunde()
{
需要“/config/config.inc.php”;
如果($result2=mysqli_查询($db,“从kunden选择kunden_id、vname、nname”))
{
回声“;
而($adr=mysqli\u fetch\u assoc($result2))
{
回显“$adr['vname']”.$adr['nname']”;
}
回声“;
}
其他的
{
echo“Daten konnten nicht aus der Datenbank gelesen werden.
”; echo mysqli_错误($db); } }
您需要将函数更改为返回字符串,而不是回显字符串

例如:

function choose_kunde()
{
    $output = '';
    require './config/config.inc.php';

    if($result2 = mysqli_query($db, "SELECT kunden_id, vname, nname FROM kunden"))
    {
        $output .= "<select name='kunde_a'>";

        while($adr = mysqli_fetch_assoc($result2))
        {
            $output .= "<option value='".$adr['vname']."|".$adr['nname']."|".$adr['kunden_id']."'>".$adr['vname']." ".$adr['nname']."</option>";
        }

        $output .= "</select>";
    }
    else
    {
        $output .= "Daten konnten nicht aus der Datenbank gelesen werden.<br>";    
        $output .= mysqli_error($db);
    }

    return $output;
}
函数选择_kunde()
{
$output='';
需要“/config/config.inc.php”;
如果($result2=mysqli_查询($db,“从kunden选择kunden_id、vname、nname”))
{
$output.=“”;
而($adr=mysqli\u fetch\u assoc($result2))
{
$output.=''.$adr['vname'].''.$adr['nname'].'';
}
$output.=“”;
}
其他的
{
$output.=“数据银行的数据不完整。
”; $output.=mysqli_错误($db); } 返回$output; }
然后连接它

echo "<tr>
    <td>
       Choose people:<br>
        " . choose_kunde() ."
    </td>
</tr>";
echo”
选择人:
" . 选择_kunde() ";

您仍然需要对代码进行修改,使其更加清晰。

您已经使用返回系统编写了函数。请尝试使用此代码

function choose_kunde()
{
    $html = '';
    require './config/config.inc.php';
    if($result2 = mysqli_query($db, "SELECT kunden_id, vname, nname FROM kunden"))
    {
        $html .= "<select name='kunde_a'>";
        while($adr = mysqli_fetch_assoc($result2))
        {
            $html .=  "<option value='".$adr['vname']."|".$adr['nname']."|".$adr['kunden_id']."'>".$adr['vname']." ".$adr['nname']."</option>";
        }
        $html .= "</select>";
    }
    else
    {
        $html .= "Daten konnten nicht aus der Datenbank gelesen werden.<br>";
        $html .= mysqli_error($db);
    }
  return $html;
}
函数选择_kunde()
{
$html='';
需要“/config/config.inc.php”;
如果($result2=mysqli_查询($db,“从kunden选择kunden_id、vname、nname”))
{
$html.=”;
而($adr=mysqli\u fetch\u assoc($result2))
{
$html.=''.$adr['vname'].''.$adr['nname'].'';
}
$html.=”;
}
其他的
{
$html.=“银行存款不受限制。
”; $html.=mysqli_错误($db); } 返回$html; }
如中所示,您得到的是白色页面?或者它没有按顺序显示?猜测这里的问题是,
choose\u kunde
的输出在
echo
的其余部分之前。1)
返回函数中的最后一个字符串,而不是
echo
ing,或者2)分别完成
echo
s:
echo“…”;选择_kunde();回声“…”。在我找到使用echo“,function()”的方法之前,我得到了一个白色页面。现在它在函数中显示ALL,但不显示select@decezeit不起作用。你仍然可以做
echo…,选择_kunde(),…
,我建议使用过度连接(它的性能稍微好一点)来连接它。它向我展示了一个白色页面。使用,它向我显示我的表等,但仍然不起作用是@deceze他可以做到,但我更喜欢返回值,而不是在函数内部使用echos,但这是品味的问题。关于您的白页,请使用
错误报告(E\u ALL)检查日志和ini_集('display_errors',1);`看看错误是什么。这有点尴尬。。我有一个错误的functions.php的include路径,这就是为什么它不工作的原因-讨厌这些类型的错误,我正在搜索很多分钟/小时的错误,它只是一个错误的路径。。但是@Robert你的代码很有效谢谢:)@Robert这不是我要说的。我说的是你的第二个代码块。
function choose_kunde()
{
    $html = '';
    require './config/config.inc.php';
    if($result2 = mysqli_query($db, "SELECT kunden_id, vname, nname FROM kunden"))
    {
        $html .= "<select name='kunde_a'>";
        while($adr = mysqli_fetch_assoc($result2))
        {
            $html .=  "<option value='".$adr['vname']."|".$adr['nname']."|".$adr['kunden_id']."'>".$adr['vname']." ".$adr['nname']."</option>";
        }
        $html .= "</select>";
    }
    else
    {
        $html .= "Daten konnten nicht aus der Datenbank gelesen werden.<br>";
        $html .= mysqli_error($db);
    }
  return $html;
}