【问题标题】:Function in echo why does it bugs?echo 中的函数为什么会出错?
【发布时间】:2016-06-14 09:03:24
【问题描述】:

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

echo "<tr>
        <td>
           Choose people:<br>
            ",choose_kunde(),"
        </td>
    </tr>";

我的功能:

   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);
    }
}

【问题讨论】:

  • 就像,你得到一个白页?还是没有按顺序显示?
  • 猜测这里的问题是choose_kunde 的输出是echo 其余部分的输出之前。要么 1) return 函数中的最终字符串,而不是 echoing 它,或者 2) 分别完成 echos:echo "..."; choose_kunde(); echo "...";
  • 在我找到使用 echo ",function()," 的方法之前,我得到了一个白页。现在它显示所有但不显示函数中的选择。 @decezeit 不起作用。

标签: php sql function echo


【解决方案1】:

您需要更改函数以返回字符串而不是回显它。

示例:

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;
}

然后将其连接起来

echo "<tr>
    <td>
       Choose people:<br>
        " . choose_kunde() ."
    </td>
</tr>";

您仍然需要处理代码以使其更干净。

【讨论】:

  • 你仍然可以使用echo .., choose_kunde(), ..,我建议过度连接(它的性能稍微好一点)。
  • 将其与 .它向我展示了一个白页。 ,它向我展示了我的桌子等,但仍然无法正常工作
  • 是的@deceze 他可以做到,但我更喜欢返回值而不是在函数内部使用回声,但这是品味问题。关于你的白页检查日志使用error_reporting(E_ALL); 和 ini_set('display_errors', 1);` 看看错误是什么。
  • 有点尴尬..我有一个错误的包含路径到functions.php这就是为什么它不起作用-.-讨厌这些类型的错误我正在搜索错误的几分钟/小时和它只是一条错误的路径.. 但是@Robert 你的代码可以正常工作,谢谢 :)
  • @Robert 这不是我要说的。我说的是你的 second 代码块。
【解决方案2】:

您已经编写了带有返回系统的函数。试试这个代码。

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    相关资源
    最近更新 更多