为什么只获得1个数组而不是许多数组?

时间:2015-02-07 21:18:14

标签: php

我是编程php的新手我想让下面的代码返回许多数组(闪存as3),但是我只收到一个数组。任何人都可以在这里指出我的错误是什么?感谢。

$data_array = "";
$i = 0;
//if(isset($_POST['myrequest']) && $_POST['myrequest'] == "get_characters")
//{
$sql = mysqli_query($conn, "SELECT * FROM ns_users ORDER BY Char_id");
while($row = mysqli_fetch_array($sql))
{
    $i++;
    $fb_name = $row["Username"];
    $fb_id = $row["Fb_id"];
    $fb_at = $row["Access_token"];
    $fb_sig = $row["Fb_sig"];
    $char_id = $row["Char_id"];
    if($i == 1)
    {
        $data_array .= "$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    }
    else
    {
        $data_array .= "(||)$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    }
    echo "returnStr=$data_array";
    exit();
}

3 个答案:

答案 0 :(得分:1)

你的最后两行应该在你的循环之外:

$data_array = "";
$i = 0;
//if(isset($_POST['myrequest']) && $_POST['myrequest'] == "get_characters")
//{
$sql = mysqli_query($conn, "SELECT * FROM ns_users ORDER BY Char_id");
while($row = mysqli_fetch_array($sql))
{
    $i++;
    $fb_name = $row["Username"];
    $fb_id = $row["Fb_id"];
    $fb_at = $row["Access_token"];
    $fb_sig = $row["Fb_sig"];
    $char_id = $row["Char_id"];
    if($i == 1)
    {
        $data_array .= "$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    }
    else
    {
        $data_array .= "(||)$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    }



    }
echo "returnStr=$data_array";
        exit();

答案 1 :(得分:1)

当您编写退出洞察力循环时,您将停止执行程序并且只获得一条记录。您应该设置echo并在while循环后退出。

$data_array = "";
$i = 0;

$sql = mysqli_query($conn, "SELECT * FROM ns_users ORDER BY Char_id");
while($row = mysqli_fetch_array($sql)) {
    $i++;
    $fb_name = $row["Username"];
    $fb_id = $row["Fb_id"];
    $fb_at = $row["Access_token"];
    $fb_sig = $row["Fb_sig"];
    $char_id = $row["Char_id"];

    if($i == 1) {
        $data_array .= "$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    } else {
        $data_array .= "(||)$fb_name|$fb_id|$fb_at|$fb_sig|$char_id";
    }    
}
echo "returnStr=$data_array";
exit();

答案 2 :(得分:1)

如果您要在SELECT中命名所需的列,那么它就会简单得多。请务必在获取中使用MYSQLI_ASSOC

$sql = mysqli_query($conn, "SELECT Username, Fb_id, Access_token, Fb_sig, Char_id FROM ns_users ORDER BY Char_id");

while($row = mysqli_fetch_array($sql, MYSQLI_ASSOC))
{
    $data_array[] = implode('|', $row);
}
echo "returnStr=" . implode('(||)', $data_array);
exit();