DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   SQL baze podataka - Sponzor: Baze-Podataka.net (http://www.devprotalk.com/forumdisplay.php?f=10)
-   -   i opet pitanje za upit (http://www.devprotalk.com/showthread.php?t=696)

ivanhoe 21. 02. 2006. 15:10

i opet pitanje za upit
 
WordpressMU cuva podatke za svakog korisnika u posebno tabeli, npr. svi komentari za blog sa ID-jem 10 su u tabeli wp_10_comments. S druge strane opsti podaci o blogovima se nalaze svi u tabeli wp_blogs.

Meni treba da prikazem podatke o blogovima (iz wp_blogs) i da u to ukljucim broj komentara za svaki blog ("SELECT count(*) FROM wp_X_comments", gde je X blog id za taj blog), ali tako da moze se sortira po broju komentara. Baza je mysql.

Da li postoji nacina da se ovo nekako resi preko subselecta ili neke druge cisto sql fore ? Hteo bih da izbegnem sortiranje 2 dimenzialnog niza u php-u...

bluesman 21. 02. 2006. 15:39

Mislim da je to zajeb sto se tabele zovu tako kako se zovu, koliko sma "izmozgao" nisam mogao da napravim query, cak ni 2 querija koji bi bez php i petlje to mogli da odrade.

dinke 21. 02. 2006. 16:20

PHP kôd:

/**
 * Sort multidimensional array
 * @param array
 * @access private
 */
function multi_sort($array)
{
    
usort($array,create_function('$a,$b','return ($a["total"] > $b["total"]) ? -1 : 1 ;')); 
    return 
$array;


:1074:

noviKorisnik 21. 02. 2006. 17:27

... pa to je trebalo da se izbegne :-D

ivanhoe 21. 02. 2006. 17:35

pa, moja logika je bila da sortiranje u PHP-u sa usort mora da bude sporije od sortiranja u bazi, ipak je baza optimizovana za takve stvari, a usort poziva php funkciju za svako poredjenje, mora da ima prilican overhead...plus SQL mogu da menjam iz plugina, a za ovo cu morati da menjam fajlove...

ali bice da mi nema druge...

BTW, ako ikad budete zeleli da imate multiuser blog nemojte da koristite WordpressMU za to, totalno je krsh resenje sklepano na osnovama Wordpressa...za oko 5000+ blogova na sajtu baza je dostigla nekih 16000 tabela, za operacije nad jednim blogom to i nije tako strasno, ali bilo kakva cross-blog operacija je nocna mora...

bluesman 21. 02. 2006. 18:01

Nisam pogedao kod, iskreno nisam ni znao da postoji dok ti nisi ovo postovao, ali mislim da je samo imenovanje tabela jako lose resenje.

zextra 22. 02. 2006. 13:36

Off Topic: Kontam da je WP pravio neki clipper programer :D

MorenoArdohain 22. 02. 2006. 20:27

Citat:

Originalno napisao zextra
Off Topic: Kontam da je WP pravio neki clipper programer :D

Off Topic: Valjda mislis na WordpressMU. Sam Wordpress je sasvim solidno uradjen.

dinke 22. 02. 2006. 21:34

Citat:

Originalno napisao noviKorisnik
... pa to je trebalo da se izbegne :-D

Pa znam, ali cenim da ne moze da izbegne :)

zextra 23. 02. 2006. 01:41

Off Topic: @MorenoArdohain: da, na WPMU sam mislio ;)

ivanhoe 23. 02. 2006. 02:50

Off Topic: pa i ja sam ex-clipper programer, nemoj tako :D

Problem sa WPMU je sto su oni hteli da iskoriste maximalno postojeci kod od WP, pa je cela stvar u stvari hack. WPMU ne radi sa vise blogova, nego sa jednim blogom bas kao WP, ali su dodate funkcije da se promeni trenutni blog, pa tako "simuliraju" multiuser blog sistem. To im je smanjilo obim posla, ali je zato struktura podataka vrlo pogresna za bilo sta sto ukljucuje vise blogova odjednom. Mada opet da nije tako, ja ne bih imao ovoliko posla, tako da i los kod ima svojih dobrih strana...:)

A inace i WP je pun amaterski pisanog koda. Ima gomila if($nesto==false) i slicnih nepotrebnih stvari, verovatno je autor neko ko je priucen u php-u... mada sama realizacija WP nije losa, solidno i stabilno radi posao...

Pedja 23. 02. 2006. 10:03

Off Topic:
Citat:

Originalno napisao ivanhoe
A inace i WP je pun amaterski pisanog koda. Ima gomila if($nesto==false) i slicnih nepotrebnih stvari, verovatno je autor neko ko je priucen u php-u...|

Izivni, ali ovaj primer nema veze sa priucenoscu. Nemoj prodavati te C fore da je najvaznije da kod bude sto kripticniji. Ovako napisan uslov drasticno povecava citkost koda.

bluesman 23. 02. 2006. 12:33

Upravo bih se složio sa Peđom oko toga, ali to nije tema, zar ne?

ivanhoe 23. 02. 2006. 16:02

pa ok, ja sam na pitanje dobio odgovor, tako da je tema razresena, zato i cela prica ide kao offtopic, cisto da ne otvaramo novu temu za par poruka...u stvari kako hocete, ako mislite da je vredno splitovanja, slobodno...

Off Topic: meni je zaista if(!$nesto) mnogo jasnije nego if($nesto==false). Blize mi je govornom jeziku: "ako nije ispunjen uslov", a i pravi manju guzvu u kodu.. Pogotovo sto $nesto nije boolean, nego recimo neki string, npr. neki get parametar, pa mi je poredjenje sa == malo bezveze. Ali to je stvar licnog ukusa.

Nevezano za to, to jednostavno nije u duhu PHP-a. Zato sam rekao priucen, u smislu nekoga ko je radio godinama u npr. C-u, pa se onda presaltovao u PHP, i sad pise php sintaxu, ali na isti nacin kao sto je ranije radio, nije mu se jos slegao jezik sa njegovim specificnostima...

bluesman 23. 02. 2006. 21:49

Citat:

Originalno napisao ivanhoe
Zato sam rekao priucen, u smislu nekoga ko je radio godinama u npr. C-u, pa se onda presaltovao u PHP...

Pa zar nisu svi ? :)

Pedja 24. 02. 2006. 01:24

Citat:

Originalno napisao ivanhoe
Off Topic: meni je zaista if(!$nesto) mnogo jasnije nego if($nesto==false). Blize mi je govornom jeziku: "ako nije ispunjen uslov", a i pravi manju guzvu u kodu..

Pa bas je obrnuto. if(!$nesto) mozes da prevedes kao "ako nije nesto" a if($nesto==false) sa "ako je nesto netacno". Jasno je sta je stilskije.

Petar Marić 24. 02. 2006. 14:40

Sve zavisi koje ste jezike koristili - a sem toga sve je to lični stil.
Lično, najčešće koristim shorthand sintaksu - najviše smo je koristili na faxu, a i većina (kvalitetnog) koda koji sam imao prilike da vidim koristi istu.

Napomena: Naravno, kada radite timski na projektu, tada mora postojati jedna standard za pisanje koda, koji se propisuje interno (dogovorom), propiše ga project manager ili ga je propisala sama firma. Ne treba posebno naglašavati da se tada ne gleda pozitivno na kreativne ispade u pisanju koda.


Vreme je GMT +2. Trenutno vreme je 09:46.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.