2016-07-29 8 views
-1

Ich habe eine Rangliste für ein Quiz nach ihrer Punktzahl erstellt und ich möchte die Position des Benutzers zeigen. Wie kann ich zählen, wie viele Zeilen in der Tabelle über ihnen stehen, um ihre Position zu bestimmen? Dieser Code funktioniert nur, wenn Personen nicht die gleiche Punktzahl haben. Wenn zwei Menschen beide die hohe Punktzahl haben, sehen sich beide als Nummer 2.Wie kann ich die Zeilen in einer Tabelle über einem bestimmten Datenpunkt zählen?

function firstPlace() { 
    include 'connection.php'; 
    $sql="SELECT * FROM Users WHERE Email='$_SESSION[email]'"; 
    $result=mysqli_query($connection,$sql); 
    while($row1=mysqli_fetch_array($result)) { 
     if(isset($row1[4])) { 
      $score=$row1[4]; 
     } 
    } 
    $sql2="SELECT * FROM Users WHERE Email='$_SESSION[email]'"; 
    $result2=mysqli_query($connection,$sql2); 
    $sql1="SELECT * FROM Users WHERE Score >= $score ORDER BY Score DESC"; 
    $result1=mysqli_query($connection,$sql1); 
    $numRows=mysqli_num_rows($result1); 

    while($row=mysqli_fetch_array($result2)) { 
     if($row[5]!="") { 
      $src1="photos/".$row[5]; 
     } 
     else { 
      $src1='images/profile-pic.png'; 
     } 
     echo " 
     <a class='logo' href='index.php'><img src='$src1' class='bigProfilePic' id='logo' alt='Profile pic'></a> 
     <h1>$numRows</h1> 
     <h2>$row[1]</h2> 
     <h3>$row[4]<span>Kms</span></h3>"; 
    } 
+0

Teilen Sie etwas Code, zeigen, wie Sie die Daten extrahieren, erklären, wo und wann Sie die Position zeigen möchten. Wenn Sie die Position von Anfang an anzeigen möchten, fügen Sie einfach einen Zähler in den PHP-Code ein. – Janno

Antwort

0
$sql = 'SELECT count(id) FROM Users WHERE Score > ?'; 
$stmt = mysqli_prepare($sql); 
$stmt->bind_param("i", $Score); 
$stmt->execute(); 
$result = $stmt->get_result(); 

dir geben, wie viele Nutzer haben Punktzahl höher als $ Score, Sie könnten natürlich auch die Abfrage offen halten für sql injection als die anderen, wenn Sie wollen

Verwandte Themen