MySQL Aranjare diferita la numere negative din baza de date

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
alexinio3d
Mesaje:96

MySQL Aranjare diferita la numere negative din baza de date

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>
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

MarPlo Mesaje:4343
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");

alexinio3d Mesaje:96
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.
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

archemorus Mesaje:29
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).
Have a nice day!
Desenele Copilariei http://www.desenele-copilariei.ro
Bancuri Haioase http://www.haiosul.ro

alexinio3d Mesaje:96
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.
Siteuri create / configurate de mine :
SilvoProject.Ro ( Magazin Online ) : SilvoProject.Ro
TreiSute.Ro ( Comunitate de gaming ) : TreiSute.Ro

Subiecte similare