php不会从数据库返回json数据
我已经看到了一些类似的问题,并尝试了修复,但它们不起作用。任何帮助都将不胜感激 我试图以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
<?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]);