可以';t打印完整的结果(空格消失后的所有结果)


Can't print full results (everything after a space is gone)

我会尽可能具体。

我有一个数据库表,我将从中打印信息。最简单的方法是这样做:

$con=mysqli_connect("server","user","pass","dbname");  
$users_result = mysqli_query($con,"SELECT * FROM table blabla");
while($row = mysqli_fetch_array($users_result))
    echo $row['column_to_echo'];
}   
mysqli_close($con);

如果此查询返回一行,并带有地址,则屏幕上的结果将类似于"My street 14"对吗?这就是它的工作原理。这太棒了。正是我想要的。

然而:

我需要在函数中包含这些SQL查询,因为这些查询是基于加载页面的人而动态的。

这样的函数看起来是这样的;

function getUserAddress($userid)
{
    $con=mysqli_connect("server","user","pass","dbname");
    $users_result = mysqli_query($con,"SELECT * FROM table blabla");
    while($row = mysqli_fetch_array($users_result)) {
        return $row['column_to_echo'];
    }   
    mysqli_close($con);
}

我通过这样做来使用它:

<?php $address = getUserAddress(current_user_id); echo $address; ?>

因此,在这种情况下,我们可以放心地假设函数返回的字符串与我的第一个示例中使用的字符串相同,对吧?(如果将正确的ID发送到函数中)。

情况并非如此。。我只会在屏幕上看到第一个单词。这意味着函数没有返回完整的字符串,我不知道为什么。

在我的屏幕上,它将显示为"我的",而不是《我的街道14》。这就是我的问题。

有人知道为什么会发生这种事吗?

像这样重写函数

function getUserAddress($userid)
{
    $con=mysqli_connect("server","user","pass","dbname");
    $users_result = mysqli_query($con,"SELECT * FROM table blabla");
    while($row = mysqli_fetch_array($users_result)) {
        $str.=$row['column_to_echo']." ";
    }  
    mysqli_close($con); 
    return($str);        
}

问题:

实际上,您在while循环中使用了return,该循环刚刚返回第一个值。

试试这个:

function getUserAddress($userid)
{
    $con=mysqli_connect("server","user","pass","dbname");    
    $users_result = mysqli_query($con,"SELECT `column` FROM table blabla");    
    $row = mysqli_fetch_row($users_result)
    mysqli_close($con);
    return $row;              
}

如果可行,请告诉我。