Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Order BY sudėtą kintamąjį

Parašė Narysx· 2009 Lap. 1 20:11:30
#1

Tarkim turiu tokius kodus:

deleted





čia vartotojo profilyje rodo kiek įdėta straipsnių, modų ir pan...

Ir kaip man dabar sukurti panelę, kurioje rikiuotų narius pagal $modai + $skriptai + $dizai + $straipsniai? :?

Redagavo Narysx· 2009 Lap. 6 21:11:09

Parašė Narysx· 2009 Lap. 2 18:11:11
#2

Niekas neturit jokių idėjų..? :?

Parašė MAnjack· 2009 Lap. 2 19:11:16
#3

Su dbcount() visus suskaičiuok atsikai, o paskui sudėk ;)

Parašė Narysx· 2009 Lap. 2 19:11:48
#4

Gal galima pavizdį?
P.S. Aš pats manau, kad čia reik su left join padaryt, bet tai yra mano silpnoji vieta. ;D

Parašė MAnjack· 2009 Lap. 3 15:11:45
#5

Va tau pavyzdys: Čia skaičiuoja kiek yra naujus pm fusione:

$msg_count = dbcount("(message_id)", "messages", "message_to='".$userdata['user_id']."' AND message_read='0'AND message_folder='0'");



Parašė bruzgis· 2009 Lap. 3 16:11:29
#6

tuoj parasysiu
$i=0;
$SQL = "SELECT ((SELECT COUNT(download_url) FROM ".DB_PREFIX."downloads WHERE download_license = u.user_id) + (SELECT COUNT(error_summary) FROM ".DB_PREFIX."error_reports WHERE error_user = u.user_id) + (SELECT COUNT(article_subject) FROM ".DB_PREFIX."articles WHERE article_name = u.user_id)) AS kiekis, user_id, user_name FROM ".DB_PREFIX."users u ORDER BY kiekis DESC";
opentable('Portalo aktyviausi nariai');
while($data=dbarray(dbquery($SQL))) {
$i++;
echo "<b>$i</b>. <a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' title='Vartotojo ".$data['user_name']." profilis'>".$data['user_name']." (".$data['kiekis'].")</a><br>";
}
if($i=0) echo "<center>Portale aktyvių narių nėra.</center>";
closetable();




Bandyk.

Redagavo bruzgis· 2009 Lap. 3 16:11:59

Parašė bruzgis· 2009 Lap. 3 16:11:59
#7

MAnjack parašė:
Su dbcount() visus suskaičiuok atsikai, o paskui sudėk ;)


Idomu kaip tu paskui rikiuosi ir deliosi narius :D

Parašė Narysx· 2009 Lap. 3 16:11:29
#8

chipass parašė:
tuoj parasysiu
$i=0;
$SQL = "SELECT ((SELECT COUNT(download_url) FROM ".DB_PREFIX."downloads WHERE download_license = u.user_id) + (SELECT COUNT(error_summary) FROM ".DB_PREFIX."error_reports WHERE error_user = u.user_id) + (SELECT COUNT(article_subject) FROM ".DB_PREFIX."articles WHERE article_name = u.user_id)) AS kiekis, user_id, user_name FROM ".DB_PREFIX."users u ORDER BY kiekis DESC";
opentable('Portalo aktyviausi nariai');
while($data=dbarray(dbquery($SQL))) {
$i++;
echo "<b>$i</b>. <a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' title='Vartotojo ".$data['user_name']." profilis'>".$data['user_name']." (".$data['kiekis'].")</a><br>";
}
if($i=0) echo "<center>Portale aktyvių narių nėra.</center>";
closetable();




Bandyk.


Kažkas ne taip. Kolkas pas mane web'e yra tik vienas Narys, kuris įdėjo ką nors, ir man kai spaudžiu peržiūrėti panelę išmeta apie 140000 jo nikų. ;D Ir skliausteliuose rodo neteisingą aktyvumą.

Parašė Narysx· 2009 Lap. 3 19:11:52
#9

UP (Kelti neduoda).

Parašė MAnjack· 2009 Lap. 3 22:11:02
#10

chipass parašė:
Idomu kaip tu paskui rikiuosi ir deliosi narius :D


Kaip visada iki galo neperskaičiau :D Galvojau jam tik sudėti reikia :D

Parašė Narysx· 2009 Lap. 4 18:11:54
#11

;D tai taip ir pats būčiau pasidaręs. :) Vis dar laukiu pagalbos.

Parašė ozzWANTED· 2009 Lap. 4 18:11:50
#12

Prašom:

WITH LENTELE_PAGAL_KIEKIUS AS

( SELECT
  tu.user_id AS id, tu.user_name AS vardas,
 COUNT(d.download_url) AS siuntiniu, COUNT(ers.error_summary) AS klaidu, COUNT (a.article_subject) AS straipsniu
FROM ".DB_USERS." tu
LEFT JOIN ".DB_DOWNLOADS." d ON tu.user_id=d.download_license AND download_cat IN(1,2)
LEFT JOIN ".DB_ARTICLES." a ON tu.user_id=a.article_name
LEFT JOIN ".DB_PREFIX."error_reports ers ON tu.user_id=ers.error_user
GROUP BY tu.user_id
ORDER BY user_id)

SELECT id, vardas, (siuntiniu+klaidu+straipsniu) AS viso_kiekio
FROM LENTELE_PAGAL_KIEKIUS
ORDER BY viso_kiekio DESC, id



Redagavo ozzWANTED· 2009 Lap. 4 21:11:33

Parašė Narysx· 2009 Lap. 4 19:11:14
#13

Dėkui, dėkui, tik gal galima pilnai padarytą kodą?

Parašė bruzgis· 2009 Lap. 4 20:11:52
#14

maniske sql uzklausa pilnai veikia. pme viskas tvarkoj isrikiuoja. tik ciklas kokio velnio sumala suda tai nzn
pilna koda gali pasidaryt pagal mano pateikta varianta

Parašė ozzWANTED· 2009 Lap. 4 20:11:29
#15

Narysx parašė:
Dėkui, dėkui, tik gal galima pilnai padarytą kodą?



nemoki visko į
$query = dbquery(QUERY);
while($data = dbarray($query)) {
<... DO SMTH ...>
}




sudėt???

Redagavo ozzWANTED· 2009 Lap. 4 21:11:23

Parašė bruzgis· 2009 Lap. 4 20:11:20
#16

<... DO SMTH ...>

Sita vieta jam taip neaskiai nuskambejo :D dar ir posta savo redaguotk, query ir quotery biski skirias :D

Parašė Narysx· 2009 Lap. 4 20:11:57
#17

Viskas čia man aiškiai nuskambėjo, sukišau viską kur reikėjo, bet error'us meta...

Parašė ozzWANTED· 2009 Lap. 4 20:11:55
#18

Nu tai postink kas per errorai, aš gi čia online help'ą varau, o mano compileris - mano galva. Ji syntax errorų nemėto gi :D.

Parašė Narysx· 2009 Lap. 4 21:11:15
#19

:D

Darau taip:

openside("name");




$query = dbquery("WITH LENTELE_PAGAL_KIEKIUS AS

( SELECT
tu.user_id AS id, tu.user_name AS vardas,
COUNT(d.download_url) AS siuntiniu, COUNT(ers.error_summary) AS klaidu, COUNT (a.article_subject) AS straipsniu
FROM ".DB_USERS." tu
LEFT JOIN ".DB_DOWNLOADS." d ON tu.user_id=d.download_license AND download_cat IN(1,2)
LEFT JOIN ".DB_ARTICLES." a ON tu.user_id=a.article_name
LEFT JOIN ".DB_PREFIX."error_reports ers ON tu.user_id=ers.error_user
GROUP BY tu.user_id
ORDER BY user_id)

SELECT id, vardas, (siuntiniu+klaidu+straipsniu) AS viso_kiekio
FROM LENTELE_PAGAL_KIEKIUS
ORDER BY viso_kiekio DESC, id");

$i=0;
while($data = dbarray($query)) {
echo "kur laminu? (".$i++.")";
}


closeside();


Error:


Parse error: syntax error, unexpected '{' in /home/user/domains/url/public_html/administration/panel_editor.php(111) : eval()'d code on line 23

Redagavo ozzWANTED· 2009 Lap. 4 21:11:47

Parašė ozzWANTED· 2009 Lap. 4 21:11:26
#20

Pataisiau source kodą tavo poste.

Parašė Narysx· 2009 Lap. 4 21:11:00
#21

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LENTELE_PAGAL_KIEKIUS AS ( SELECT tu.user_id AS id, tu.user_name AS var' at line 1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LENTELE_PAGAL_KIEKIUS AS ( SELECT tu.user_id AS id, tu.user_name AS var' at line 1

Parašė ozzWANTED· 2009 Lap. 4 21:11:13
#22

Pas tave v7 fusion'as(?), gal koks DB_USERS neapibrėžtas.

Redagavo ozzWANTED· 2009 Lap. 4 21:11:27

Parašė Narysx· 2009 Lap. 4 21:11:51
#23

v6. :?

Parašė ozzWANTED· 2009 Lap. 4 21:11:25
#24

Nu tai bent jau iš v7 fusion'o isincludink sau includes/multisite_include.php
include_once(INCLUDES.multisite_include.php');




arba ".DB_USERS." keisk į ".DB_PREFIX."users
ir ".DB_DOWNLOADS." į ".DB_PREFIX."downloads
ir ".DB_ARTICLES." į ".DB_PREFIX."articles

Redagavo ozzWANTED· 2009 Lap. 4 21:11:39

Parašė Narysx· 2009 Lap. 4 21:11:51
#25

Tą patį meta:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LENTELE_PAGAL_KIEKIUS AS ( SELECT tu.user_id AS id, tu.user_name AS var' at line 1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LENTELE_PAGAL_KIEKIUS AS ( SELECT tu.user_id AS id, tu.user_name AS var' at line 1