将php中的JSON与已读数据库连接

时间:2018-07-30 10:48:34

标签: php json

我从数据库中读取了用户,但是我将json返回给ajax只返回了最后一个用户,因为我无法连接json编码。

    library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(uiOutput("choices")),
  dashboardBody()
)

server <- function(input,output) {
  output$choices <- renderUI(radioButtons("blabla", NULL, 1:100))
}

shinyApp(ui = ui, server = server)

3 个答案:

答案 0 :(得分:1)

您现在正在每次迭代中覆盖$myJson。我们也不能“合并”两个json(好吧,我们可以,但我们不应该这样做,因为这很费力。)。
 最好将所有内容放在一个数组/对象中,并在最后放置json_encode()

$myObj = new \stdClass();
$users = array();  // instantiate a new array
while ($fila = $bd->fila()) {
    $myObj->NOMBRE = $fila["NOMBRE"];
    $myObj->ROLENAME = $fila["ROLENAME"];
    $myObj->IDUSER = $fila["IDUSER"];
    // add objects to that array
    $users[] = $myObj;
}
// then at the end encode the whole thing to json:
echo json_encode($users);

现在有一些变体:
如果您希望数据库在此项目中返回的所有内容,可以将其缩短为:

$users = array();  // instantiate a new array
while ($fila = $bd->fila()) {
    // add the whole item (cast as Object) to that array
    $users[] = (Object) $fila;
}
// then at the end encode the whole thing to json:
echo json_encode($users);

如果您不在乎项目是对象还是数组,则可以跳过转换,只需将数组添加到大数组即可:

 $users[] = $fila;

答案 1 :(得分:0)

您只需要将数据收集到大数组中,然后对整个数组进行编码即可。同样,没有理由创建新的StdObjects而不是通常的数组。

// define empty array
$result = [];
while ($fila = $bd->fila()) {
    // add to the array all needed elements one by one
    $result[] = [
        'NOMBRE' => $fila["NOMBRE"],
        'ROLENAME' => $fila["ROLENAME"],
        'IDUSER' => $fila["IDUSER"],
    ];
}
// encode whole result
echo json_encode($result);

答案 2 :(得分:0)

也许如果您将其连接为这样的数组 $myJSON[] = $myObj; 然后过一会儿 echo json_encode($myJSON);