php不会从数据库返回json数据

php不会从数据库返回json数据,php,mysql,json,mysqli,Php,Mysql,Json,Mysqli,我已经看到了一些类似的问题,并尝试了修复,但它们不起作用。任何帮助都将不胜感激 我试图以JSON的形式从数据库返回一些数据 这是我的密码: <?php $db = "signup"; $servername = "localhost"; $username = "username"; $password = "password"; $fetch = ("SELECT * FROM bookings"); $return_arr = array(); $conn

我已经看到了一些类似的问题,并尝试了修复,但它们不起作用。任何帮助都将不胜感激

我试图以JSON的形式从数据库返回一些数据

这是我的密码:

<?php

$db         = "signup";
$servername = "localhost";
$username   = "username";
$password   = "password";
$fetch = ("SELECT * FROM bookings"); 
$return_arr = array();

$conn = new mysqli($servername, $username, $password, $db); // working 
$query_result = mysqli_query($conn, $fetch);
mysqli_select_db("bookings",$db);

while ($row = mysqli_fetch_array($query_result, MYSQL_ASSOC)) {

    $return_arr[] = array(
        'TIMESLOT' => $row['TIMESLOT'],
        'USERPIN' => $row['USERPIN'],
        'PLAYERS' => $row['PLAYERS'],
        'ACCEPTED' => $row['ACCEPTED'],
        'EMAIL' =>  $row['EMAIL'],
        'TOTAL BOOKINGS' => $row['TOTALBOOKINGS'],
        'BOOKING ID' => $row['BOOKINGID'],
        'LAST BOOKING' => $row['LASTBOOKING'],
        'DATE' => $row['DATE']
    );
}

$user = json_encode($return_arr);

echo "<pre>";
print_r($return_arr);
echo "</pre>";     

mysqli_close($conn);

?>

我会将
while
更改为:

/。。。
$conn=newmysqli($servername,$username,$password,$db);//工作
$query_result=mysqli_query($conn,“从预订中选择*);
//...
//选项1:将MYSQL\u ASSOC更改为MYSQLI\u ASSOC
while($row=mysqli\u fetch\u数组($query\u result,mysqli\u ASSOC)){
//选项2:更改为mysqli_fetch_assoc
//而($row=mysqli\u fetch\u assoc($query\u result)){
//调试
回声“;
打印(行);
回声“;
$return\u arr[]=数组($row['BOOKINGID']),
$row['USERPIN'],
$row[“时隙”],
$row[“玩家”],
$row[“已接受”],
$row[“电子邮件”],
$row['TOTALBOOKINGS'],
$row['LASTBOOKING'],
$row[“日期”]
);
}
请注意,我在
$return\u arr
中添加了括号,否则您将更改数组的值,并且只获得最后一个值

然后,从
$return\u arr[0]
中删除“[0]”。这样,您将把整个数组编码为json。

试试这段代码


从这段代码看,$row\u array似乎是空的。您想返回带有列名的json吗?如果是这样的话,您认为它应该是$return\u arr=array('BOOKINGID'=>$row['BOOKINGID']),等等,但运气不好(您正在用每个
$row
获取的
$return\u arr
进行重击,并且在数组文本中赋值。这里有很多问题。尝试了这个,但没有运气!:(尝试了这个,但没有运气!:(您尝试过
回显$row变量吗?因为通过查看代码,您根本没有查询。请尝试删除“;”从查询中。如果您通过mysql控制台或phpmyadmin或任何类似的方式进行查询,您得到了什么吗?通过
回送
while中的行,您得到了什么吗?好的,我删除了;从查询中,我在phpmyadmin中的SQL中运行了该命令,并从数据库中返回了信息。我尝试回送while和根本不返回任何内容。就好像没有执行while一样。嗯……这很奇怪……如果你对
var\u dump
执行
return\u arr
操作,它会打印什么吗?
Array
(
    [0] => Array
        (
            [TIMESLOT] => 12:00-14:00
            [USERPIN] => 25225649
            [PLAYERS] => 4
            [ACCEPTED] => 0
            [EMAIL] => email@address.com
            [TOTAL BOOKINGS] => 0
            [BOOKING ID] => 1
            [LAST BOOKING] => 0000,00,00
            [DATE] => 0000,00,00
        )
)
$conn = new mysqli($servername, $username, $password, $db); // working 

$sql = ""; // your query
$result = $conn->query($sql);

while($row = $result->fetch_array()) {
    // Create results array
    $rows[] = array(
                    'BOOKINGID' => $row['BOOKINGID'],
                    'USERPIN' => $row['USERPIN'],
                    // and go on....
                );                              
}

mysqli_close($conn);

echo json_encode($rows[0]);