2017-10-16 1 views
0

So verwende ich mysql, um Likes auf Minecraft Server Pages als eine Möglichkeit für sie zu speichern, zu speichern. Allerdings bin ich diese gerne in einer separaten Tabelle zu speichern:PHP + MySQL - ORDER BY LIKES

id user_id server_id 
1  1   1 
2  1  24 
4  2  22 
5  2  22 
6  2   1 
7  2   4 
8  2   5 
9  2   6 
10  2  17 
11  2  18 
12  2  21 
13  2  24 

Insert Code:

INSERT INTO likes (user_id, server_id) VALUES ('".$user_id."', '".$server_id."'); 

Aber ich bin derzeit sie nach Datum hinzugefügt (letzte zuerst) Sortierung, aber ich würde gerne wissen, wie man sortiere sie nach Likes.

+2

Sie haben eine Insert-Anweisung. Ich gehe davon aus, dass Ihre Sortierung in eine Select-Anweisung eingebunden ist. Lassen Sie uns die Select-Anweisung sehen? – Andrew

+0

Ich habe diese Frage gesperrt, um Sie daran zu hindern, weiterhin Änderungen vorzunehmen, die den Beitrag wesentlich verbessern. Diese Website wird [kollaborativ bearbeitet] (https://stackoverflow.com/help/editing). Wenn Sie damit nicht einverstanden sind, ist dies wahrscheinlich nicht die Seite für Sie. Der Grund dafür ist, dass wir keine Bilder von Textinhalten zulassen. Bilder sind nicht durchsuchbar und können von Benutzern, die Bildschirmleseprogramme verwenden, nicht gelesen werden. Sie sind auch schwieriger, Informationen zu Testzwecken zu kopieren und entmutigen so gute Antworten. Also, die Person, die dein Bild durch Text ersetzt hat, hat dir einen großen Gefallen getan. –

Antwort

-3

Sie sollten eine Zählerspalte auf Ihre Server-Tabelle setzen (sagen wir: likes_counter) und dann, jedes Mal, wenn Sie ein Gleiches zur Likes-Tabelle hinzufügen, erhöhen Sie diesen Zähler. Setzen Sie einen Index auf diese Spalte tooo!

INSERT INTO likes (user_id, server_id) VALUES ('".$user_id."', '".$server_id."'); 
UPDATE servers_table SET likes_counter = likes_counter+1 WHERE server_id = '".$server_id."'; 

Nun, wenn Sie den Server auswählen, müssen Sie nur ein von Leuten befohlen tun wählen:

SELECT * FROM servers_table ORDER BY likes_counter DESC; 

ich hier Ihre Tabelle des Servers unter der Annahme servers_table benannt ist, ersetzen Sie es durch die Name, den Sie dem Tisch gegeben haben.

+0

Einen Index hinzufügen? Wie würde ich das tun? –

+0

Ich habe vergessen zu sagen, dass dies totally optional ist, aber sehr empfehlenswert! Der Index erhöht die Leistung der ausgeführten Bestellung. Sie sollten über Indizes in der Dokumentation lesen https://dev.mysql.com/doc/refman/5.5/en/optimization-indexes.html – BigBlast

+0

es ist nicht die Aktualisierung der likes_counter –