2015-02-07 47 views
3

我是一個完全新手在編程PHP我想使下面的代碼返回許多數組(閃存as3),但是我只收到一個數組。任何人都可以請找出我的錯誤是什麼?謝謝。爲什麼只取得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(); 
} 
+0

'echo' while'環 – 2015-02-07 21:20:09

+0

後'我看不出有任何陣列或在這裏返回值! – 2015-02-07 21:20:11

+1

'$ data_array'只是一個字符串,你只是追加它。 – 2015-02-07 21:20:38

回答

1

當你寫你的出口洞察你的循環停止執行程序,你會得到只有一個記錄。您應該設置回顯並在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(); 
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(); 
+0

這是有道理的解釋爲什麼,否則OP將繼續考慮編程魔術。 – zerkms 2015-02-07 21:22:50

+0

是的,我是全新的 – user2971244 2015-02-07 21:28:54

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(); 
+0

謝謝!我會嘗試使用它 – user2971244 2015-02-07 21:28:21

+0

@AbraCadaver不應該改變** $ data_array [] implode('|',$ row); ** to ** $ data_array [] = implode('|',$ row); **? – 2015-02-07 21:30:21

+0

@AdoAdel:是的,這將有助於謝謝! – AbraCadaver 2015-02-07 21:32:15

相關問題