[英]How to retrieve two results from SQL Database
我正在使用使用CPanel的SQL數據庫使用PHP服務器。
我正在使用SQL查詢從數據庫中檢索值(數字),並將它們傳遞到單獨的javascript文件。 為了實現這一點,我首先在一個單獨的PHP文件上創建了一個查詢,該查詢獲取了以下信息:
文件名:SQLamountofusers.php
<?php
$query = sprintf("SELECT COUNT( * ) as c
FROM `applications`
JOIN `users` ON ( users.id = applications.id_m )
WHERE `cdate` > CURRENT_DATE -30");
$result = mysql_query($query);
$res = mysql_fetch_assoc($result);
echo json_encode($res[c]);
mysql_free_result($result);
?>
然后,使用AJAX將回顯的結果傳遞到JS文件:
文件名:canvas.js
$(document).ready( function() {
$(usersreport).click(function() {
$.ajax({
type: 'POST',
url: 'js/SQLamountofusers.php',
data: 'id=usersreport',
dataType: 'json',
cache: false,
success: function(result) {
var num = Number(result);
{ label: "Active", y: num},
{ label: "Inactive", y: 0 },
});
});
現在這是我想要實現的,但不知道如何:
我想將兩個值傳遞給canvas.js文件,一個是活動用戶(需要在數據庫中進行一次查詢(上面已經寫過)),另一個是非活動用戶(需要進行另一次查詢)-那么如何我將兩個結果放入JS文件?
我應該使用其他查詢來創建另一個單獨的PHP文件,還是有另一種方法來實現它?
嘗試將查詢調整為:
<?php
$query = sprintf("SELECT
COUNT(DISTINCT IF(cdate > CURRENT_DATE - 30, users.id, NULL)) AS c,
COUNT(DISTINCT IF(cdate <= CURRENT_DATE - 30, users.id, NULL)) AS d
FROM applications
JOIN users ON users.id = applications.id_m");
$result = mysql_query($query);
$res = mysql_fetch_assoc($query);
echo json_encode($res);
mysql_free_result($result);
?>
然后您可以調整canvas.js以將結果拉為
$(document).ready( function() {
$(usersreport).click(function() {
$.ajax({
type: 'POST',
url: 'js/SQLamountofusers.php',
data: 'id=usersreport',
dataType: 'json',
cache: false,
success: function(result) {
var num = Number(result.c);
var num2 = Number(result.d);
{ label: "Active", y: num},
{ label: "Inactive", y: num2 },
});
});
免責聲明:我尚未測試此代碼,只是提供了它作為您可以嘗試的潛在解決方案。
文件名:SQLamountofusers.php
<?php
$query = "SELECT COUNT( * ) as c
FROM `applications`
JOIN `users` ON ( users.id = applications.id_m )
WHERE `cdate` > CURRENT_DATE -30";
$result = mysql_query($query);
$res = mysql_fetch_assoc($result);
$data = array('active' => $res['c']);
$query2 = "SELECT ...";
$result2 = mysql_query($query2);
$res2 = mysql_fetch_assoc($result2);
$data['inactive'] = $res2['c']);
echo json_encode($data);
?>
文件名:canvas.js
$(document).ready( function() {
$(usersreport).click(function() {
$.ajax({
type: 'POST',
url: 'js/SQLamountofusers.php',
data: 'id=usersreport',
dataType: 'json',
cache: false,
success: function(result) {
{ label: "Active", y: result.active},
{ label: "Inactive", y: result.inactive},
});
});
只需將第二個sql查詢替換為所需的一個即可。
編輯:基本上,您可以通過json數組和對象。 因此,您可以輕松傳遞任意數量的數字。 准備具有所需值的php數組,然后對其進行json_encode(),您將在js端獲得具有值的對象或數組。 如果您不使用$ arr = array(1,2,3)之類的鍵來編碼php數組, 您將在js端獲得數組。 您可以將其引用為a [0],a [1]等。如果您對關聯的php數組進行編碼,即使用$ arr = array('k1'=> 1,'k2'=> 2)之類的鍵進行編碼。 您將在js端獲得一個對象。 並將其引用為o.k1,o.k2等。
嘗試: $query = "SELECT COUNT( * ) as c FROM
applications
JOIN users
ON ( users.id = applications.id_m ) WHERE cdate
> CURRENT_DATE -30";
沒有sprintf();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.