2017-08-02 116 views
-3

我很难显示使用json的mysql查询结果的总数。Json总结果mysql

我想这条规则,但它只返回这样的:

{"Total1": "10"} 

我需要与返回它的[]:

[{"Total1": "10"}] 

遵循的PHP代码:

<?php 
include 'DatabaseConfig.php'; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$sql = "SELECT revenda, quantidade FROM app_venda"; 
$result = $conn->query($sql); 
$total1 = mysql_num_rows($result); 
if ($result->num_rows > 0) { 
    // output data of each row 
    $row[total1] = $total1; 
    $json = json_encode($row); 
} else { 
    echo "0 results"; 
} 
echo $json; 
$conn->close(); 
?> 
+0

'json_encode(阵列(阵列( '共1'=> $共1页)));' – RiggsFolly

+0

@RiggsFolly太感谢你了,它的工作! –

+0

你不应该使用mysql_ *函数。自从用了十年之后,他们感到沮丧,从PHP5.5开始弃用并从PHP7开始删除。任何依赖于它们的代码都可能被认为是不安全的,这对于实际使用而言是毫无疑问的。为了您正在编写的程序,将使用它的用户和您自己的工作作为程序员,您应该尽快切换到PDO。你甚至不应该编写包含这些函数的代码,甚至(特别是)如果它在像这样的网站而不是IDE中,因为它会将行为传播给新的编码器。 – ksjohn

回答

1

然后您需要在数据周围添加另一个阵列

$total1 = 10; 
echo json_encode(array(array('Total1' => $total1))); 

结果

[{"Total1":10}] 

或者用你的代码在数组定义的修正。注意$row['total1'] = 10;使用引号数组名制止这种错误

注意:使用未定义的常量共1页的 - 假设“共1”

$row['total1'] = 10; 
echo json_encode(array($row)); 

我可以建议furutre你测试代码这些行添加到所有脚本的顶部

ini_set('display_errors', 1); 
ini_set('log_errors',1); 
error_reporting(E_ALL); 
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

这会强制任何mysqli_错误到 生成您可以在浏览器上看到的异常,并且其他错误也会在浏览器中显示。

+0

非常感谢,它的工作! –

-1
$total1 = mysql_num_rows($result); 
$row = array(); 
if ($result->num_rows > 0) { 
    // output data of each row 
    $row[][total1] = $total1; 
    $json = json_encode($row); 
} else { 
    echo "0 results"; 
} 
echo $json; 
+0

非常感谢,它的工作! –

+1

@Vaishnavesh - 请添加一些关于此代码如何以及为什么解决此OP问题的解释,最好是链接到相关文档以及支持您解释的相关引用。虽然OP很明显是受这段代码的帮助,但另一个搜索类似问题的解决方案的用户可能会发现这个问题和答案,但不明白这段代码可能有用。 –