来自php MySQL查询的JSON显示不存在的列

来自php MySQL查询的JSON显示不存在的列,php,mysql,json,xampp,Php,Mysql,Json,Xampp,好的,我有一个非常简单的XAMPP设置,其中的数据库包含一个包含两行的表。我有一个php脚本,它随机获取其中一行,然后用JSON打印结果查询。不管出于什么原因,尽管JSON有“列”(我并不真的想称它们为列,因为JSON不能有列,但是,是的…),但这些列实际上并不存在于表中 我对XAMPP堆栈中的所有内容都很陌生,所以如果这是一个愚蠢的问题,我会提前道歉 这是我的桌子: 下面是生成的JSON: {"0":"1","id":"0.9645465863538408","1":"Big Mac","n

好的,我有一个非常简单的XAMPP设置,其中的数据库包含一个包含两行的表。我有一个php脚本,它随机获取其中一行,然后用JSON打印结果查询。不管出于什么原因,尽管JSON有“列”(我并不真的想称它们为列,因为JSON不能有列,但是,是的…),但这些列实际上并不存在于表中

我对XAMPP堆栈中的所有内容都很陌生,所以如果这是一个愚蠢的问题,我会提前道歉

这是我的桌子:

下面是生成的JSON:

{"0":"1","id":"0.9645465863538408","1":"Big Mac","name":"Big Mac","2":"A double layer of sear-sizzled 100% pure beef mingled with special sauce on a sesame seed bun and topped with melty American cheese, crisp lettuce, minced onions and tangy pickles.","description":"A double layer of sear-sizzled 100% pure beef mingled with special sauce on a sesame seed bun and topped with melty American cheese, crisp lettuce, minced onions and tangy pickles.","3":"http:\/\/www.mcdonalds.com\/content\/dam\/McDonalds\/item\/mcdonalds-Big-Mac.png","imgSrc":"http:\/\/www.mcdonalds.com\/content\/dam\/McDonalds\/item\/mcdonalds-Big-Mac.png","4":"2","upVotes":"2","5":"1","downVotes":"1","6":"0.9645465863538408"} 
(“表中不存在0”、“1”等)

以下是我的php:


使用
mysql\u-fetch\u-assoc
而不是
mysql\u-fetch\u-array
。默认情况下,
mysql\u fetch\u array
返回一个数组,每个列都有命名索引和数字索引


或者您可以使用
mysql\u fetch\u数组($result,mysql\u ASSOC)
。默认的第二个参数是
MYSQL\u BOTH
,这会导致您看到的结果。

首先,您的意思是
,而不是
。第二,您是否已
var\u转储了$row?这是一个带有索引的数组。第三,如果不指出
mysql
已被弃用,不安全,应该用
mysql
PDO
@cale_b意思是
mysqli
*或
PDO
:)替换,那么对这个问题的评论就不完整了,你能解释一下你想用SQL查询实现什么吗?我打赌是你的加入导致了它的出现。在select语句中指定所需的列。仅此而已。没有意识到它会同时打印索引的名称和编号。它只打印数组中的任何内容。如果有两个索引,它将同时打印它们。
$password = "";
$usertable = "mcdonalds"; 

//Connect
mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
connect to $hostname . Please try again later.");
mysql_select_db($dbname);

//Fetch
$query = "SELECT * FROM `McDonalds`AS r1 JOIN(SELECT (RAND() *(SELECT MAX(id) FROM `McDonalds`)) AS id) AS r2 WHERE r1.id >= r2.id  ORDER BY r1.id ASC LIMIT 1";
$result = mysql_query($query);

$row = mysql_fetch_array($result);  
//Print
echo json_encode($row);