Php 如何从数据库中检索信息并存储在多维数组中
我试图做的是从数据库创建一个日历对象数组 我想要的结果是这样的:Php 如何从数据库中检索信息并存储在多维数组中,php,mysql,arrays,Php,Mysql,Arrays,我试图做的是从数据库创建一个日历对象数组 我想要的结果是这样的: array( array( 'id' => 111, 'title' => "Event3", 'start' => "$year-$month-10", 'url' => "http://example.com/" ), array( 'id' => 222, 'title' =&
array(
array(
'id' => 111,
'title' => "Event3",
'start' => "$year-$month-10",
'url' => "http://example.com/"
),
array(
'id' => 222,
'title' => "Event2",
'start' => "$year-$month-20",
'end' => "$year-$month-22",
'url' => "http://example.com/"
)
)
我需要正确的代码,将从每个数据库记录生成一个子数组。生成数组后,我将json\u编码它
注意变量$year
和$month
将从我的代码的其他部分提供。您尝试过类似的方法吗?:
$mysqli = new mysqli ( 'Host', 'User', 'Pass', 'dB');
$myq = $mysqli ->query ( 'SELECT field1, field2, field3 FROM table' );
$arr_result = array();
while ( $myr = $myq->fetch_assoc () ) {
$array = array(
'field1' => $myr['field1'],
'field2' => $myr['field2'],
'field3' => $myr['field3'],
);
$arr_result[] = $array;
}
echo json_encode($arr_result);
如果只有json\u encode()
位失败,则可能是由于字符编码问题。json\u encode()
函数要求所有字符串成员都是有效的UTF8字符串。从:
此函数仅适用于UTF-8编码数据
如果相关数据库对象不是UTF8,则会看到函数调用失败。我看到的第一个问题是没有处理数据库的代码;)请提供有关数据库问题的更多详细信息。向我们展示您尝试过的代码,并告诉我们更多关于您的表及其数据的信息。我想我问的问题不对。我知道如何从数据库中获取数据,但我遇到的问题是生成数组中每个对象的正确语句。如果我手工编码数组中的每个对象,它们将显示在日历上。我需要做的是在数据库中循环以动态生成每个对象。每个对象都将出现在日历上。目前它们是手工编码的。同样,我需要正确的代码来动态生成每个对象。只是不确定生成这个dynamicallyWell的正确方法,您需要为数组本身提供一个临时变量。循环遍历数据库结果,将它们分别附加到数组[]=中,然后仅在最后一步使用json_encode()。这将为每个字段生成不同的数组。您需要类似于$arr_result[]=array('field1'=>$myr['field1'],'field2'=>$myr['field2'],'field3'=>$myr['field3'])代码>@dabito我修复了你的代码。你不能像以前那样重复执行$array[]操作。一定是错过了,谢谢=)到目前为止运气不好。这些对象未显示在日历上。同样,如果我手工编码数组中的所有对象,它们将出现。只有当我尝试运行sql语句来获取数据时,这些数据才不会显示在日历上。发生了一些事情,阻止了数据的打印,正如我在上面的手工编码脚本中所示。您是否在json编码之前打印了数组?