2017-02-11 3 views
1

Я получаю то же значение для 1-го, 2-го и 3-го. Затем следующая строка дает мне результаты, которые должны быть во втором столбце, предположительно в первой строке.Мой запрос выбора возвращает те же данные для 3 рядов

<?php 
require "db.php"; 
$sql = " 
SELECT e_name 
    , IF(t_rank = 1, a_shortcut, a_shortcut) AS 1st 
    , IF(t_rank = 1, a_shortcut, a_shortcut) AS 2nd 
    , IF(t_rank = 3, a_shortcut, a_shortcut) AS 3rd  
    FROM team t 
    JOIN event e 
    ON t.EID = e.EID 
";       

$con = mysqli_connect($server_name,$mysql_user,$mysql_pass,$db_name); 

$result = mysqli_query($con,$sql); 


$response = array(); 

while($row=mysqli_fetch_array($result)) 
{ 
array_push($response, array("e_name"=>$row[0],"1st"=>$row[1], 
"2nd"=>$row[2], "3rd"=>$row[3])); 

} 
echo json_encode (array("nresults"=>$response)); 



mysqli_close($con); 

?> 

Мой ожидается выход

Пример. Shortcut has a, b, c and they have rank a =1 b =2 c =3;

Тогда 1st = a, 2nd = b, 3rd = c;

Что им получаю

1st = a, 2nd = a, 3rd = a; 

то следующая строка показывает

1st = b, 2nd = b, 3rd = b; 
+0

Редактировать свой вопрос и предоставить образцы данных и желаемый результат. – GurV

ответ

1
$sql = "select e_name 
, IF(t_rank = 1,'A',NULL) AS 1st 
, IF(t_rank = 2,'B',NULL) AS 2nd 
, IF(t_rank = 3,'C',NULL) as 3rd  
from team t 
join event e on t.EID = e.EID";   

это вернет ранг в A, B, C format..when условие матча, то он будет преобразовать в A, B , C формат

0

Я думаю, что вам нужно изменить запрос, как показано ниже:

$ sql = "select e_name, CASE t_rank, когда t_rank = 1-й en a_shortcut, когда t_rank = 2, затем b_shortcut, когда t_rank = 3, затем c_shortcut END как ранг из командного внутреннего события объединения в команде. EID = event.EID ";

Затем используйте поле ранга. конца, как matching_tag из команды внутреннего соединения события на team.EID = event.EID ";

+1

Задайте себе это: 'if (some_condition, col, col)' имеет смысл? – GurV

+1

не применяется условие, если ... как истина return, а также return false – denny

+0

Нет, это ничего не значит –

Смежные вопросы