简体   繁体   English

如何将结果放入变量MYSQL

[英]How do I get the result into a variable MYSQL

I have the following PHP script. 我有以下PHP脚本。 How do I get the correct results. 我如何获得正确的结果。 Each query should only return a number. 每个查询应仅返回一个数字。 I need to get rank in this case. 在这种情况下,我需要获得rank I was also wondering how to combine those two queries into one statement. 我还想知道如何将这两个查询合并为一个语句。

function getRankings($country, $deviceid)
{

$queryWorld = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score ) AS rank FROM
ScoreTable b WHERE DeviceID='$deviceid' ORDER BY rank LIMIT 1";

$queryCountry = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score  AND Country='$country') AS rank FROM ScoreTable b WHERE DeviceID='$deviceid' ORDER BY rank LIMIT 1";

$resultWorld =  mysql_query($queryWorld) or die(mysql_error());  
$rowWorld = mysql_fetch_row($resultWorld);
$resultCountry =  mysql_query($queryCountry) or die(mysql_error());
$rowCountry = mysql_fetch_row($resultCountry);

$arr = array();
$arr[] = array("WorldRanking" => $rowWorld[0], "CountryRanking" => $rowCountry[0]);
echo json_encode($arr);         
}

If I type the queries individually into MYSQl I get the correct answers. 如果我将查询分别键入MYSQl,则会得到正确的答案。 But the echo produces 但是echo产生

[{"WorldRanking":null,"CountryRanking":null}]

It should be something like 应该是这样的

[{"WorldRanking":"4","CountryRanking":"1"}]

I think I need to get the value of rank but I do not know how. 我想我需要获得rank的价值,但我不知道如何。

try your code like this, but I don't know this code correct or not: 尝试这样的代码,但我不知道此代码正确与否:

function getRankings($country, $deviceid)
{

$queryWorld = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score ) AS rank FROM
ScoreTable b WHERE DeviceID='$deviceid' ORDER BY rank LIMIT 1";

$queryCountry = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score  AND Country='$country') AS rank FROM ScoreTable b WHERE DeviceID='$deviceid' ORDER BY rank LIMIT 1";

$resultWorld =  mysql_query($queryWorld) or die(mysql_error());  
while ($rowWorld = mysql_fetch_row($resultWorld)){
$value1 = $rowWorld['filedname1'];
}
$resultCountry =  mysql_query($queryCountry) or die(mysql_error());
while($rowCountry = mysql_fetch_row($resultCountry)){
$value2 = $rowWorld['filedname2'];
}

$arr[] = array("WorldRanking" => $value1, "CountryRanking" => $value2);
print_r($arr);        
}
<?php
function getRankings($country, $deviceid)
{

$queryWorld = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score ) AS rank FROM
ScoreTable b WHERE DeviceID=$deviceid ORDER BY rank LIMIT 1";

$queryCountry = "SELECT 1 + (SELECT count( * ) FROM ScoreTable a WHERE a.score > b.score  AND Country='$country') AS rank FROM ScoreTable b WHERE DeviceID=$deviceid ORDER BY rank LIMIT 1";

$resultWorld =  mysql_query($queryWorld) or die(mysql_error());  
$no_of_results_in_resultWorld = mysql_num_rows($resultWorld);
if($no_of_results_in_resultWorld > 0){
    $rowWorld = mysql_fetch_row($resultWorld);
}

$resultCountry =  mysql_query($queryCountry) or die(mysql_error());
$no_of_results_in_resultCountry = mysql_num_rows($resultCountry);
if($no_of_results_in_resultCountry > 0){
    $rowCountry = mysql_fetch_row($resultCountry);
}

$arr = array();
$arr[] = array("WorldRanking" => $rowWorld[0], "CountryRanking" => $rowCountry[0]);
echo json_encode($arr);         
}

check whether it is returning results or not. 检查它是否返回结果。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM