Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Sortare tablou cu mai multe dimensiuni
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
ovi2ut



Data înscrierii: 13/Sep/2002
Mesaje: 166
Locație: Middle of Nowhere

Trimis: Mie Sep 10, 2003 9:19 am    Titlul subiectului: Sortare tablou cu mai multe dimensiuni  

Am un portal de stiri ce permite utilizatorilor inregistrati sa adauge, editeze, etc ... stiri.

Stirile sunt de 2 tipuri: stiri normale, adica niste articole lungi, si niste stiri scurte, de cateva randuri. Cele doua tipuri de stiri sunt tinute in 2 table MySQL.

Ceea ce vreau eu este ca, pe o alta pagina (pagina index a site-ului), sa afisez intotdeauna ultimele 4 stiri in functie de data, indiferent din care din cele doua categorii face parte. O solutie ar fi fost cu UNION, dar serverul este 3.23.52, deci nu exista asa ceva.

Cum m-am gandit eu sa fac este sa pun primele patru stiri din fiecare categorie intr-un tabel, dupa care sa extrag de acolo ceea ce am nevoie.

Problema este ca acest tabel este un tabel cu mai multe dimeniuni, de forma:

$news[$nr]['id']
$news[$nr]['title']
$news[$nr]['date']

unde $nr ia valori de la 1 la 8.

Cum as putea sorta acest tablou dupa data ?

P.S. Daca aveti si alte :idea: , sunt binevenite
Sus  
cristi



Data înscrierii: 26/Mai/2002
Mesaje: 270
Locație: Timisoara

Trimis: Mie Sep 10, 2003 1:04 pm    Titlul subiectului:  

Poti incerca cu functia array_multisort [http://www.php.net/manual/en/function.array-multisort.php] sau usort[http://www.php.net/manual/en/function.usort.php].

Cod: function sortbyorderdate($a, $b) {
    if (empty($a["order_date"])) return -1;
if (empty($b["order_date"])) return 1;
    return strcmp(strtotime($a["order_date"]), strtotime($b["order_date"]));
}

while ($rows[] = mysql_fetch_array($result)) {}

usort($rows, "sortbyorderdate");

Cristi
Sus  
iugin



Data înscrierii: 22/Mai/2003
Mesaje: 82
Locație: Oradea

Trimis: Lun Sep 15, 2003 10:29 am    Titlul subiectului: Re: Sortare tablou cu mai multe dimensiuni  

ovi2ut a scris: Am un portal de stiri ce permite utilizatorilor inregistrati sa adauge, editeze, etc ... stiri.

Stirile sunt de 2 tipuri: stiri normale, adica niste articole lungi, si niste stiri scurte, de cateva randuri. Cele doua tipuri de stiri sunt tinute in 2 table MySQL.

Ceea ce vreau eu este ca, pe o alta pagina (pagina index a site-ului), sa afisez intotdeauna ultimele 4 stiri in functie de data, indiferent din care din cele doua categorii face parte. O solutie ar fi fost cu UNION, dar serverul este 3.23.52, deci nu exista asa ceva.

Cum m-am gandit eu sa fac este sa pun primele patru stiri din fiecare categorie intr-un tabel, dupa care sa extrag de acolo ceea ce am nevoie.

Problema este ca acest tabel este un tabel cu mai multe dimeniuni, de forma:

$news[$nr]['id']
$news[$nr]['title']
$news[$nr]['date']

unde $nr ia valori de la 1 la 8.

Cum as putea sorta acest tablou dupa data ?

P.S. Daca aveti si alte :idea: , sunt binevenite


pai intrun fel e greseala ta. De ce nu ai putut sa le pui pe toate in aceeasi tabela? iti mai pun un camp acolo (boolean), news_type sa zicem.

Ce o sa faci daca mai inventenzi un nou tip de stiri?? Mai creezi o tabela?

Fati o tabela news_type si o tabela news care se leaga intre ele si asa potzi face cate tipuri vrei.

E ca si cum ai spune ca bagi stiri pe domenii (sport, stiri, politica samd) in baza de date si pt fiecare creezi tabela separata.


Nu am vrut sa fiu rau(cu exemplele) numai tiam aratat unde ai gresit. Eu zic sa rescrii partea asta pana nu e prea tarziu si dupa aceea partea cu ordonarea o sa fie "floare la ureche".
Sus  
ovi2ut



Data înscrierii: 13/Sep/2002
Mesaje: 166
Locație: Middle of Nowhere

Trimis: Lun Sep 15, 2003 10:45 am    Titlul subiectului:  

Mda, ai dreptate,

problema e insa ca nu eu am facut portalul de stiri. Este facut de altcineva si este folosit de ceva timp asa ca si daca as vrea nu prea pot sa-l schimb(si nici nu am timp acum).

Tot ce trebuie sa fac eu este sa afisez in alta pagina ultimele n (adica 4) stiri.

Problema se rezolva foarte usor daca aveam MySQL mai nou pe server, nu era nici o problema, mai ales ca datele din tabele sunt aceleasi, dupa cum ai spus si tu, deci puteam face un UNION ...
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Mar Sep 16, 2003 5:57 pm    Titlul subiectului:  

Nu exista chiar nici o corelatzie intre tabelele alea (exemplu sa aibe titlul in comun sau ceva acolo)??
Pentru ca din ceea ce ai scris nu reiese nimic.
Cum accesezi stirea mare cand este afisata cea mica(daca imi dai voie sa le zic asha) pt ca te potzi lega de chestia asta ca sa generezi un tabel comun folosind JOIN.
Sus  
ovi2ut



Data înscrierii: 13/Sep/2002
Mesaje: 166
Locație: Middle of Nowhere

Trimis: Mar Sep 16, 2003 6:13 pm    Titlul subiectului:  

Nu am cum sa folosesc JOIN, am nevoie de UNION, numai ca serverul este 3....

Nu exista nici o legatura intre tabele, stirile scurte sunt afisate in dreapta paginii, iar articolele pe mijloc, fara nici o legatura intre ele.

Tabele au insa niste campuri comune, printre care si cele de care am eu nevoie, id, titlu, data, autor.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community