2017-02-08 4 views
1

Ich bekomme den gleichen Wert für die 1., 2. und 3. Zeile. Dann gibt die nächste Zeile die Ergebnisse, die in der zweiten Spalte in der ersten Zeile enthalten sein sollen.Abfrage liefert die gleichen Daten für 3 Zeilen

<?php 
require "db.php"; 
$sql = "select n_name, shortcut, IF(rank = 1>2, 2, shortcut) AS 1st, IF(rank = 1<2, shortcut, shortcut) AS 2nd, 
IF(rank = 3=3, 1, shortcut) as 3rd from team inner join nonsport on team.n_id = nonsport.n_id";       

$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("n_name"=>$row[0],"1st"=>$row[1], 
"2nd"=>$row[2], "3rd"=>$row[3])); 

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



mysqli_close($con); 

?> 

Meine erwartete Ausgabe ist

Beispiel. Die Abkürzung hat a, b, c und sie haben den Rang a = 1 b = 2 c = 3;

Dann 1st = a, 2nd = b, 3rd = c;

Was im bekommen ist

1. = a, 2. = a, 3. = a;

dann die nächste Zeile zeigt

1. = b, 2. = b, 3. = b;

+0

'Rang = 1 <2' ?? Was soll das tun? – GurV

+0

Ich habe gerade versucht, dass Sir – orange

Antwort

1
IF(rank = 1 > 2, 2, shortcut) 

Es löst wie folgt:

  • Wenn rank gleich 1 ist, dann ist rank = 1 1 sonst 0
  • kann entweder 0 oder 1 als 2 größer sein?
  • So, rank = 1 > 2 löst immer auf false und Ausgabe von IF wird Durst-Parameter, d.

IF(rank = 1 < 2, shortcut, shortcut) 

Diese kehrt man Verknüpfung immer als 2. und 3. param beide Verknüpfung.


IF(rank = 3 = 3, 1, shortcut) 

Dabei

  • Wenn Rang 3 ist, dann ist rank = 3 1 sonst 0.
  • Kann rank = 3 (Ausgang 0 oder 1) gleich 3 sein?
  • So geben rank = 3 = 3 immer false zurück, und daher ist Ausgabe immer der dritte Parameter, d. H. Abkürzung.

Daher, warum alle drei Funktionen den gleichen Wert zurückgeben.

In Bezug auf Ihre erwartete Ausgabe, bearbeiten Sie bitte Ihre Frage, um Beispieldaten und die erwartete Ausgabe basierend darauf hinzuzufügen, zusammen mit einer vollständigen Erklärung der Logik.

+0

Oh, das ist, wie die sonst Frage in PHP arbeiten? Ich wusste das nicht. Ich lege nur zufällige Dinge dorthin und hoffe, die Antwort zu bekommen. Danke – orange

+1

@orange uhmm das ist nicht PHP. –

+0

@orange - Das ist ein MySQL-Code, nicht PHP. – GurV

Verwandte Themen