Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
MySQL

Sortowanie.

MySQL

  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 ELOS

    No i pozamiatane ;*

  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 12.09.2011 20:27

Mam problem otóż sortuje mi punkty według 1 cyfer a nie całości.

np mam coś takiego.

Nazwa Druzyny | Punkty

Real Madryt | 39

Super | 30

Nowa | 2


Ustawiłem żeby pokazywało 3 najlepsze drużyny natomiast najlepsza drużyna ma 111punktów ; ]

zapytanie
$row = mysql_query("SELECT * FROM `druzyny` ORDER BY  `druzyny`.`druzyna_punkty` DESC LIMIT 0 , 3")
Tabela letin2_general_ci

Użytkownik ELOS edytował ten post 12.09.2011 20:29

  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#2 fdszpl0

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
  • Lokalizacja:Kraków
Offline

Napisano 12.09.2011 21:05

na WYBRANEJ bazie danych wykonaj polecenie:
describe druzyna_punkty;
pokaż, zakładam że pole z pktami ma złe typowanie

Użytkownik fdszpl0 edytował ten post 12.09.2011 21:07

  • +
  • -
  • 1

#3 ELOS

    No i pozamiatane ;*

  • Autor tematu
  • Power User

Reputacja: 145
Zaawansowany

  • Postów:703
  • GG:
  • Imię:Kamil
  • Lokalizacja:Będzin
Offline

Napisano 13.09.2011 05:58

Nie wiem jak wykonać tą komendę ale typ mam VARCHAR(500)
Dobra zmieniłem typ na int(255) dzięki za podpowiedź z typem.

Użytkownik ELOS edytował ten post 13.09.2011 05:59

  • +
  • -
  • 0

[Aktualizacja 22.01.2015] GunXpMod 2.7.4

http://wklej.to/vlMW7


#4 fdszpl0

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
  • Lokalizacja:Kraków
Offline

Napisano 13.09.2011 18:45

dla ilości pkt drużyn wystarczy jeden bajt w pamięci bez znaku, rezerwując miejsce typem int - marnotrawisz pamięć. użyj
UNSIGNED TINYINT
pewnie nie rozumiesz to ci wytłumacze
tinyint to w mysqlu 1 bajtowe pole liczb całkowitych. 1 bajt = 8bitów (stanów 0,1)
mamy załóżmy
11111111
osiem jedynek w systemie binarnym to dwa do potegi 8 czyli 256 (z czego max wartośc będzie 255 bo jeszcze jest 0 -razem z zerem jest ich 256) ale jeden bit jest zarezerwowany na znak minus lub jego brak czyli pozostaje 7bitów dlatego zakres tinyinta jest od -128 do 127, lecz w przypadku Twojego pola gdzie ilość pkt jest zawsze dodatnia możesz wykorzystać bit znaku jako bit liczby w ten sposób otrzymujesz jeszcze jedna potęge w systemie dwojkowym czyli przedział 0-255

no i to by było na tyle, jak ci 255 nie wystarcza to weź dwa bajty, czyli SMALLINT jest to ilość znaków odpowiadajaca 2 do potegi 16 czyli max dla typu bez znakowego 65535, a ty zrobiłeś int czyli zarezerwowales aż 4 bajty co przy dużej ilości rekordów może się skumulować w sporą ilość pamięci dla 1000 rekordow masz juz 3000bajtow czyli ~2,93KB oczywiście jest to śmieszny rozmiar w małym projekcie ale warto uczyć się dobrych wzorów na przyszłość i to nie tyczy się tylko bazy danych ale szeroko rozumianego typowania danych. dziekuje za uwage proszę o rep bo juz mnie zminusowali ostro :D:D:D:D

a komende describe TABLE; możesz wykonać z powłoki unixa (bash), myślę że phpmyadmin też ma taka mozliwosc chociaz tam jest zrobiona zakładka "struktura" a o to chodzi
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: MySQL

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych