Tabelele HTML nu sunt pentru stocarea datelor, pentru a fi preluate si aranjate. Tabelele HTML sunt pt afisare.
Pentru stocarea datelor poti folosi un tabel intr-o baza de date MySQL, de exemplu, pt. acel clasament, un tabel cu aceste coloane:
id - echipa - meciuri - puncte
Daca stii php si mysql, stocarea datelor in mysql ofera avantaj de a le prelua (selecta) usor in multe moduri.
Daca vrei sa tii datele in fisier pe server, poti folosi un format XML intr-un fisier ".xml".
Pt ce ai tu, fisierul .xml ar putea fi asa:
Cod: Selectaţi tot
<?xml version="1.0" encoding="utf-8"?>
<fotbal>
<echipa name="Real Madrid">
<meciuri>3</meciuri>
<puncte>24</puncte>
</echipa>
<echipa name="Barcelona">
<meciuri>3</meciuri>
<puncte>23</puncte>
</echipa>
</fotbal>
Apoi, cu
SimpleXML preiei datele din fisierul .xml, le poti adauga intr-un array multi-dimensional, iar cu array_multisort() poti ordona elementele din array (ca in exemplu de mai jos).
- O alta varianta, mai usoara de a stoca datele in fisier text pe server, este in format JSON.
Exemplu fisier.txt cu datele in format JSON:
Cod: Selectaţi tot
{
"Real Madrid": {"meciuri": 3, "puncte": 24},
"Barcelona": {"meciuri": 3, "puncte": 26},
"Alta_Echip": {"meciuri": 2, "puncte": 21}
}
Apoi, cu file_get_contents() se citeste fisierul, cu json_decode() se transforma in array, si se ordoneaza cu array_multisort().
Exemplu:
Cod: Selectaţi tot
<?php
// preia sirul JSON din 'fisier.txt' si-l transforma in array
$fotbal = json_decode(file_get_contents('fisier.txt'), true);
$tmp = Array(); // folosit pt ordonare
// adauga in $tmp valorile de la 'puncte'
foreach($fotbal as &$ma) $tmp[] = &$ma["puncte"];
// ordoneaza array-ul principal ($fotbal) folosind valorile din $tmp ordonate descrescator
array_multisort($tmp, SORT_DESC, $fotbal);
// Test
var_export($fotbal);
// Aici se pot afisa datele/ adauga in cod /tabel html
?>
- Daca stii php si lucrul cu Array, te descurci; daca nu, poti invata din lectiile si tutorialele din Cursul PHP-MySQL de pe site.