Pagina 1 din 1

MySQL Aranjare diferita la numere negative din baza de date

Scris: Sâm Noi 10, 2012
de alexinio3d
Revin cu cerere de ajutor.
Am facut ca , clasamentul sa mi se aranjeze in ordinea punctelor si daca sunt la egalitate de puncte sa se ia dupa golaveraj, dar aici intervine o mica problema care nu stiu cum sa o rezolv.
Problema se vede in imaginea urmatoarea, adresa URL:
http://img546.imageshack.us/img546/6196/16625119.png
Daca sunt la egalitate de puncte si golaverajul ii pe minus atunci tot descrescator se ia :-s .
Eu as vrea sa fie cele cu minus in fata sa fie crescator .

Acesta e codul:

Cod: Selectaţi tot

<table class="table table-hover">
         <th align="center"><font color="#FF0000"><center>#</center></font></th>
         <th align="center"><font color="#FF0000"><center>Echipa</center></font></th>
         <th align="center"><font color="#FF0000"><center>M</center></font></th>
         <th align="center"><font color="#FF0000"><center>V</center></font></th>
         <th align="center"><font color="#FF0000"><center>E</center></font></th>
         <th align="center"><font color="#FF0000"><center>I</center></font></th>
         <th align="center"><font color="#FF0000"><center>GD</center></font></th>
         <th align="center"><font color="#FF0000"><center>GP</center></font></th>
         <th align="center"><font color="#FF0000"><center>G</center></font></th>
         <th align="center"><font color="#FF0000"><center>Pct.</center></font></th>
<?php
$info = mysql_query("SELECT * FROM clasament_echipa ORDER by `puncte` DESC, `golaveraj` DESC");
$loc = 1;

while ($row = mysql_fetch_array($info))
{
$puncte = $row['puncte'];
$golaveraj = $row['golaveraj'];
$echipa = $row['echipa'];
$meciuri = $row['meciuri'];
$victori = $row['victori'];
$egaluri = $row['egaluri'];
$infrangeri = $row['infrangeri'];
$goluri_date = $row['goluri_date'];
$goluri_luate = $row['goluri_luate'];
print( " <tr class='info'>
         <td class='rank'><center>$loc.</center></td>
         <td class='echipa'><center>$echipa</center></td>
         <td class='meciuri'><center>$meciuri</center></td>
         <td class='victori'><center>$victori</center></td>
         <td class='egaluri'><center>$egaluri</center></td>
         <td class='infrangeri'><center>$infrangeri</center></td>
         <td class='goluri_date'><center>$goluri_date</center></td>
         <td class='goluri_luate'><center>$goluri_luate</center></td>
         <td class='golaveraj'><center>$golaveraj</center></td>
         <td class='puncte'><center>$puncte</center></td></tr>" );
$loc++;
}
?>
</table>

MySQL Aranjare diferita la numere negative din baza de date

Scris: Sâm Noi 10, 2012
de MarPlo
Incearca Selectul asa. Ideea e ca ordonarea in functie de a doua coloana (cand valorile din prima sunt egale) sa se faca ca si cum numerele ar fi pozitive (valoarea absoluta).

Cod: Selectaţi tot

$info = mysql_query("SELECT * FROM clasament_echipa ORDER by `puncte` DESC, ABS(`golaveraj`) DESC");

MySQL Aranjare diferita la numere negative din baza de date

Scris: Dum Noi 11, 2012
de alexinio3d
MarPlo scrie:Incearca Selectul asa.

Cod: Selectaţi tot

$info = mysql_query("SELECT * FROM clasament_echipa ORDER by `puncte` DESC, ABS(`golaveraj`) DESC");
Am modificat linia, dar tot asa imi da.

MySQL Aranjare diferita la numere negative din baza de date

Scris: Dum Noi 11, 2012
de archemorus
Esti sigur ca ai ales un format numeric pentru campurile "puncte" si"golaveraj"?
Adica cele doua coloane "puncte" si "golaveraj" trebuie sa fie de tipul integer (sau alt tip numeric) in baza ta de date. Daca e de tipul CHAR /string, degeaba o sa le ordonezi DESC pentru ca o sa le ordoneze in functie de alt criteriu (daca nu ma insel dupa codul ASCII).

MySQL Aranjare diferita la numere negative din baza de date

Scris: Dum Noi 11, 2012
de alexinio3d
Coloanele sunt in VARCHA. Deci sa inteleg ca daca pun INT sau TINYINT , SMALLINT etc va merge ?
Am pus la baza de date asa:

Cod: Selectaţi tot

  `golaveraj`    INT (11) NOT NULL DEFAULT '0',
  `puncte`     INT (11)   NOT NULL DEFAULT '0',
Edit:
Gata merge.
Am folosit codul de la inceput, dar cu coloanele tip INT.

Cod: Selectaţi tot

$info = mysql_query("SELECT * FROM clasament_echipa ORDER by `puncte` DESC, `golaveraj` DESC");
 
Va multumesc inca o data si sunteti cei mai tari.