2016-07-13 2 views
1

Ich habe ein Table Called Geschick, in denen ich verschiedene Fields WieWie kann ich durch höchste Anzahl Mehrere Tabellen und Spalten Werte auswählen

skillPer1 SkillPer2 SkillPer3 ..... skillPer8. (skillPer=skillPercentage) 

und eine andere Tabelle namens Benutzer, die userImage und usw. enthält .. so ich will diese zwei Tabellen für Geschicklichkeits Ergebnis sowie Benutzerprofil in gleichen div

so zu kombinieren, wenn Benutzer Speichern Seine Skill in % von 100 Dann wird die highest K von denen 8 skillPer Feldern

zur Anzeige ich mag

Für Beispiel Benutzer Hat Shop skillPer1 in PHP80%skillPer2 in C++90%, so dass ich highest wollen % aus diesen Tabellenfelder anzuzeigen, die 90% Also im Grunde ist Ich möchte diese beiden Aussagen zwei als das Benutzerprofil kombinieren, wie gut zusammen und erhalten seine Fähigkeit Höchstes%, aber ich kann es nicht herausgefunden, wie die

<?php 
$userID=$_REQUEST['userID']; 
    $sql1= "(SELECT *, @maxVal:= GREATEST(skillPer1,skillPer2,skillPer3,skillPer4,skillPer5,skillPer6,skillPer7,skillPer8) as higherPercentage, 
CASE @maxVal 
WHEN skillPer1 THEN 'skillPer1' 
WHEN skillPer2 THEN 'skillPer2' 
WHEN skillPer3 THEN 'skillPer3' 
WHEN skillPer4 THEN 'skillPer4' 
WHEN skillPer5 THEN 'skillPer5' 
WHEN skillPer6 THEN 'skillPer6' 
WHEN skillPer7 THEN 'skillPer7' 
WHEN skillPer8 THEN 'skillPer8' 
     END AS max_value_skill_name 
FROM `skill`) ";   
$res1 = mysql_query($sql1) or die(mysql_error()); 
while ($row1 = mysql_fetch_assoc($res1)) { 

?> 

<?php 
$userID = intval($_SESSION['userid']); 
$sql = "(SELECT * FROM user ORDER BY signup_date DESC)"; 
$res = mysql_query($sql) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($res)) 
{ 
?> 

<?php echo '../uploads/'.$row['userImage'];?> 
<?php echo '../uploads/'.$row1['skillPercentage'];?> 

<?php }} ?> 
+1

bekommen Wenn Sie MySQL verwenden, sehen die 'GRÖSSTE()' Funktion – iainn

+0

PLZ können Sie mir ein kleines Beispiel geben von dem, was ich für Select-Anweisung –

Antwort

0

Sie sQL-Abfrage wie unten schreiben zu tun ....

SELECT id, GREATEST(a,b,c,d) as higherPercentage FROM `your_table`; 

in obigem Beispiel a, b, c und d sind die Spalten ... Hoffnung, das wird helfen ...

unten versucht Maximalwert Prozentsatz mit seiner Fähigkeit Spalte zu bekommen ...

SELECT *, @maxVal:= GREATEST(a,b,c,d) as higherPercentage, 
CASE @maxVal WHEN a THEN 'a' 
WHEN b THEN 'b' 
WHEN c THEN 'c' 
WHEN d THEN 'd' 
     END AS max_value_skill_name 
FROM `your_table` 

es kehrt Ergebnis wie .. resultset

+0

diskutiert habe und was shud ich Echo für meine Ergebniszeile was ??? –

+0

erhalten Sie maximalen Wert von Prozent in "higherPercentage" diese Spalte – Skalbhile

+0

ist es wesentlich, higherPercentage Spalte zu erstellen oder shud echo es direkt –

0

MySQLGREATEST() Funktion der größte der angegebenen Argumente zurückgibt.

$result = mysqli_query($connection ,"SELECT id, GREATEST(Skill1,Skill2,Skill3,........) as highestskillPercentage FROM table") or die(mysqli_error($connection)); 

while($row = mysqli_fetch_assoc($result)){ 

$id = $row['id']; 
$percentahe = $row['highestskillPercentage']; 

wenn Sie nicht AS highestskillPercentage verwenden, werden Sie erhalten eine Ausgabe wie

GREATEST(Skill1,Skill2,skill3,skill4…………………...) 
90 
48 
78 
23 
85 

aber wenn Sie verwenden highestskillPercentage Sie

highestskillPercentage 
    90 
    48 
    78 
    23 
    85 
+0

im confuse mit dem HighestskillPercentage-Feld ist es zwingend erforderlich, in der Tabelle zu erstellen und wozu dient das? –

+0

nein ist es nicht aber wenn Sie dies nicht verwenden, dann in der Abfrage direkt in phpmyadmin erhalten Sie die Kopfzeile als GRÖSSTE (skill1, skill2 ...) aber im laufenden Code mit PHP ist es leer, so dass wir einen Namen verwenden müssen – user1234

+0

so im Grunde muss ich echo higherskillPercentage für mein höchstes Ergebnis –

Verwandte Themen