无法打印完整的结果(空间消失后的所有内容)

时间:2013-12-02 18:09:28

标签: php mysql sql

我会尝试尽可能具体。

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

$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”。这是我的问题。

有没有人知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

像这样重写你的功能

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

问题:

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

答案 1 :(得分:0)

请改为尝试:

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

如果有效,请告诉我。