[ Príspevkov: 20 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
NapísalOffline : 19.02.2012 10:59 | Výber užívateľov z DB

Nazdarek. Vytvaram si script na vyber uzivatelov ktory si navzajom zasielaju postu. Teda mam tabulku v ktorej mam stlpce: id, adresat, odoslal, text, datum. No a ja by som potreboval zobrazit vsetkych uzivatelov kde prebehla komunikacia (odosielanie sprav) medzi mnou (teda prihlasenym uzivatelom) a ostatnymi uzivatelmi.. Urobil som si takyto vyber:
Kód:
$select=mysql_query("SELECT post.adresat, post.odoslal, post.datum FROM post JOIN (SELECT adresat, MAX(datum) as datum FROM post WHERE odoslal='$uzivatelP' OR adresat='$uzivatelP' GROUP BY adresat) AS last ON post.datum = last.datum ORDER BY datum DESC");

a zobrazovanie uzivatelov:
Kód:
while ($res = mysql_fetch_array($select))
      {
      $adresat = $res["adresat"];
      $odoslal = $res["odoslal"];
      ($odoslal=="$uzivatelP") ? $uzivatel="$adresat" :  $uzivatel="$odoslal";
      $users .="$uzivatel <br>";
      }

No a mna zaujima, ci sa da tento select upravit tak, aby som nemusel pri tom vypisovani pouzivat este tu podmienku. Lebo momentalne ma nic lepsie nenapadlo a pri dalsich scriptoch budem potrebovat tiez nieco podobne, ale vo väcsom rozsahu a chcel by som sa potom vyhnut pridavaniu rôznych podmienok pri vypisovani udajov.. Dakujem za rady..


Offline

Čestný člen
Čestný člen
Výber užívateľov z DB

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 19.02.2012 12:49 | Výber užívateľov z DB

Akú podmienku? Ja ti nerozumiem.
Myslíš tento riadok?
Kód:
($odoslal=="$uzivatelP") ? $uzivatel="$adresat" :  $uzivatel="$odoslal";

Na tej podmienke nie je nič zlé (ak nepočítam to, že dávaš premenné do úvodzoviek, čo je v tomto prípade nepochopiteľné).


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 19.02.2012 16:48 | Výber užívateľov z DB

No ide o to, ze potrebujem z tej DB vybrat vsetkych uzivatelov s ktorymi si "vymienam postu" ale chcem ich zobrazit iba raz..Teda aby sa mi vytvoril zoznam vsetkych uzivatelov s ktorymi mam nejaku "vymenenu postu". No a chcem vediet ci sa to da zapisat aj inac, ten select na DB, alebo len takym spôsobom, ako som to uviedol v tom kode..Teda len s tou podmienkou..


Offline

Čestný člen
Čestný člen
Výber užívateľov z DB

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 19.02.2012 18:03 | Výber užívateľov z DB

Ja by som ten select napísal ináč, ale nie som až taký hardcore programátor, aby som ti povedal, či je lepší tvoj, alebo môj zápis. Každopádne tam moc toho nevymyslíš, ak potrebuješ naraz vybrať príspevky, v ktorých vystupuješ ako odosielateľ aj ako prijímateľ, musíš to robiť takto.


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 21.02.2012 11:38 | Výber užívateľov z DB

shaggy.. A ako by si napisal ten select?? Skus to sem hodit..Mozno bude lepsi ako moj..Lebo ten môj pri väcsom mnozstve sprav robi hluposti.. :-(

// pridané po 22 hodinách 23 minútach od posledného príspevku

Neviete mi nahodou niekto poradit nejaky lepsi /iny/ select na vyber uzivatelov, lebo tento script funguje dobre iba v pripade, ak su medzi mnou (ako adresatom) a odosielatelom odoslanych aspon 3 spravy..Inac, mi to vypisuje kazdeho uzivatela 2 krat..A neviem prist na to, ako to opravit.. :( Budem vdacny za kazdu radu..


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2012 12:34 | Výber užívateľov z DB

Chces vybrat tych, medzi ktorymi prebehla vzajomna komunikacia (A-B a B-A), alebo staci aj jednostranna (A-B alebo B-A)?


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 21.02.2012 12:44 | Výber užívateľov z DB

Potrebujem vybrat tych, medzi ktorymi prebehla vzajoma komunikacia..teda nieco v zmysle (Ja-Jozko/ Jozka-Ja, Ja-Ferko/ Ferko-Ja) Cize zoznam uzivatelov s ktorymi som si vemenil postu..


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2012 13:40 | Výber užívateľov z DB

Ak som ta spravne pochopil, tak by malo toto fungovat:
Kód:
SELECT IF(adresat = '$uzivatelP', odoslal, adresat) AS user
FROM (
   SELECT adresat, odoslal
   FROM post
   WHERE adresat = '$uzivatelP' OR odoslal = '$uzivatelP'
   GROUP BY adresat, odoslal
) AS tmp
GROUP BY user
HAVING COUNT(*) = 2

Prisposobit si to vlastnym potrebam uz hadam zvladnes...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 21.02.2012 14:50 | Výber užívateľov z DB

stenley..Super..Presne toto som potreboval..po mensej uprave:
Kód:
"SELECT IF(adresat = '$uzivatelP', odoslal, adresat) AS user FROM (SELECT adresat, odoslal, MAX(datum) as datum FROM post WHERE adresat = '$uzivatelP' OR odoslal = '$uzivatelP' GROUP BY adresat, odoslal) AS tmp GROUP BY user HAVING COUNT(*) >= 1 ORDER BY datum DESC LIMIT 10"

to funguje presne podla mojich predstav.. Este raz dik...:-D


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 21.02.2012 18:31 | Výber užívateľov z DB

nechcel si len obojstrannu kominukaciu? Lebo v tvojej upravenej verzii mas zahrnute aj jednostranne - v tom pripade sa to da spravit aj jednoduchsie...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 22.02.2012 8:58 | Výber užívateľov z DB

No ide o to, ze potrebujem mat zobrazenych aj uzivatelov, ktory mi poslali iba jednu spravu, alebo som im odoslal iba jednu spravu ja. Teda zoznam vsetkych, s ktorymi maj vymenenu postu bez ohladu na pocet vymeneych sprav (ci uz ako adresata alebo odosielatela) A pri priamom pouziti toho scriptu, co si mi napisal mi takychto uzivatelov nezobrazilo..Ale po menšej korekcii /vid moj script/ uz ano.. Ako sa to da spravit jednoduchsie??


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 22.02.2012 10:05 | Výber užívateľov z DB

Preto som sa ta hned na zaciatku pytal, co vlastne chces, lebo to nebolo jednoznacne. Odpovedal si, ze potrebujes vzajomnu komunikaciu - na priklade to znamena, ze minimalne 1 spravu si poslal userovi B a ten ti taktiez poslal minimalne 1 spravu (to je vzajomne posielanie sprav) - ak by si nemal takuto poziadavku, tak vysledne sql je jednoduchsie - bez vnoreneho selectu:
Kód:
SELECT IF(adresat = '$uzivatelP', odoslal, adresat) AS user
FROM post
WHERE adresat = '$uzivatelP' OR odoslal = '$uzivatelP'
GROUP BY user

Ak ti to vyhovuje viac, mozes namiesto group by pouzit distinct


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 25.02.2012 16:38 | Výber užívateľov z DB

stenley..az teraz som si vlastne vsimol, ze aj v tom prvom aj v tom druhom selecte mi zoaruje uzivatelov podla datumu, kedy som ja im odoslal spravu a nie oni mne.. A snazim sa to nejako vyriesit, ale pomocou ORDER BY mi to nefunguje..A ja potrebujem docielit aj to, aby mi vzdy navrchu zobrazilo "najnovsich uzivatelov". V com by mohol byt problem???


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 25.02.2012 21:48 | Výber užívateľov z DB

najlepsie bude, ak napises, ake mas data (zopar riadkov) a co z nich chces dostat, aby bolo jasne, co presne chces dosiahnut...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 26.02.2012 12:49 | Výber užívateľov z DB

OK..tak to skusim napisat po lopate.. Mam tabulku s nazvom posta, ktora obsahuje:
id, id_spravy, adresat, odoslal, sprava, datum. Do tejto tabulky, sa mi uklada, kazda sprava, ktoru si medzi sebou uzivatelia vymenia. To znamena:
1 ms1 martin jozef ahoj.ako sa mas... 14.1.2011 14:21:31
2 ms2 jozef martin mam sa dobre... 14.1.2011 14:22:30
3 ms3 jozef peter Nechces si pokecat??... 14.1.2011 14:41:10
4 ms4 janko jozef Bol si dnes v skole?... 14.1.2011 15:01:10
5 ms5 matka katka Ahoj kočka... 14.1.2011 15:01:11
6 ms6 katka jozef Ako sa ma matka?... 14.1.2011 15:02:12
No a ja sa prihlasim ako uzivatel jozef . A ja teraz potrebujem, aby mi ako prihlasenemu uzivatelovi, vypisovalo zoznam vsetkych uzivatelov s ktorymi som si vymenil postu, ale tak aby boli zoradeny, resp. "na vrchu" boli ty uzivatelia s ktorymi som si vymenil spravy ako s poslednymi alebo som od nich prave dostal nejaku spravu. Cize to co som uz spominal v predoslych prispevkoch a teda, ze potrebujem zobrazit vsetkych uzivatelov, aj tych co mi poslali hoci len jednu spravu,aj tych ktorym som poslal ja hoc len jednu spravu, ale stale potrebujem mat na vrchu uzivatela, s ktorym som si vymenil (zaslal/dostal) poslednu spravu. Na priklade: mam zoznam uzivatelov: Jozko, janko, Ferko, matko, kubko. Ja teraz odoslem spravu uzivat. matko, tak sa mi ten zoznam zmeni na matko, Jozko, janko, Ferko, kubko a v pripade, ze mi v zapäti pride sprava od Janky, tak sa mi ten zoznam znova zmeni na: Janka, matko, Jozko, janko, Ferko, kubko
Dufam, ze som to vysvetlil zrozumintelne.. Ak potrebujes vidiet nejaky zdrojak, tak povedz co konkretne chces vidiet a ja to sem doplnim. :shock:


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 26.02.2012 18:41 | Výber užívateľov z DB

tie litanie si nemusel pisat, stacilo uviest par riadkov zdrojovej tabulky a vysledok, ktory z nich ma vzniknut :)
v prvom rade mas blby format datumu, ktory komplikuje zoradovanie - keby si ho mal v zauzivnom formate, tak ti nerobi problem zoradenie podla datumu...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 26.02.2012 19:18 | Výber užívateľov z DB

stenley..teraz celkom nerozumiem, co presne ti mam ukazat..Ved tabulka obsahuje len to co som uviedol v tych litaniach :-D A vzniknut ma ten zoznam uzivatelov, ale tak aby som mal usporiadanych uzivatelov podla toho kedy doslo "k vymene sprav". Cize stale na zaciatku zoznamu budu uzivatelia s poslednou vymenenou (prijatou/odoslanou) spravou. A format datumu ukladam normalne v strtotime, ten datum som v tych litaniach uviedol len pre lepsiu orientaciu..


Offline

Správca fóra
Správca fóra
Výber užívateľov z DB

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 26.02.2012 19:26 | Výber užívateľov z DB

uz nemusis nic uvadzat, len som ti napisal, ze namiesto toho slohu stacilo ukazat par riadkov dat - podobne ako zname "lepsie raz vidiet, ako stokrat pocut"... zorad si to podla idcka zostupne a mas to vyriesene (predpokladam, ze to nemas poprehadzovane)...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 27.02.2012 15:02 | Výber užívateľov z DB

stenley...stale to nefunguje..ani ked som to zoradil podla id, ani zoradenie podla datumu..Proste, tych uzivatelov, ktory mi poslali postu na zaciatok zoznamu mi nehodi.. Prida ich na zaciatok zoznamu iba v tom pripade, ak im odpisem na prijatu postu.. :cry:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.09.08
Prihlásený: 14.11.17
Príspevky: 225
Témy: 74 | 74
Bydlisko: Michalovce
Napísal autor témyOffline : 28.02.2012 16:36 | Výber užívateľov z DB

Takze uz som to asi vyriesil..Zatial to funguje dobre..tak ako si to predstavujem a teda, ze "posledny" uzivatelia su stale na zaciatku zoznamu(ci uz spravu odoslem alebo dostanem).. :D
Upravil som to takto:
Kód:
SELECT IF(adresat = '$uzivatelP', odoslal, adresat) AS user, MAX(datum) AS datum FROM post WHERE adresat = '$uzivatelP' OR odoslal = '$uzivatelP' GROUP BY user ORDER BY datum DESC LIMIT 12

stenley..Diky moc


 [ Príspevkov: 20 ] 


Výber užívateľov z DB



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Vyber uzivatelov z 2 tabuliek

v Databázy

2

335

30.11.2012 16:32

zaciatocnik

V tomto fóre nie sú ďalšie neprečítané témy.

farby užívateľov

v Redakčné systémy

4

843

05.12.2006 7:31

mokus

V tomto fóre nie sú ďalšie neprečítané témy.

Nával užívatelov

v Správy pre vedenie fóra

21

3337

09.10.2005 20:36

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Vkladnanie uzivatelov

v PHP, ASP

5

657

22.04.2008 15:09

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Zoznam uživateľov

v Redakčné systémy

1

823

21.02.2007 11:20

Freelan

V tomto fóre nie sú ďalšie neprečítané témy.

Pocet zaregistrovanych uzivatelov

v PHP, ASP

10

761

18.07.2008 8:19

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

ICQ - zoznam uzivatelov

v Sieťové a internetové programy

3

876

08.03.2008 13:20

fuco

V tomto fóre nie sú ďalšie neprečítané témy.

WordPress role užívateľov

v Redakčné systémy

1

560

18.02.2014 18:35

don jebot

V tomto fóre nie sú ďalšie neprečítané témy.

Nefunkčné prepínanie užívatelov

v Operačné systémy Microsoft

1

613

04.02.2011 11:57

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Vista - prihlasovanie uzivatelov

v Operačné systémy Microsoft

3

687

02.10.2009 14:01

Frey

V tomto fóre nie sú ďalšie neprečítané témy.

pocitadlo online uzivatelov

v PHP, ASP

5

1642

02.06.2006 8:22

wlacho

V tomto fóre nie sú ďalšie neprečítané témy.

Výpis časov prihlásenia užívateľov

v Operačné systémy Microsoft

5

601

11.11.2006 14:59

johny128

V tomto fóre nie sú ďalšie neprečítané témy.

Zbieranie dat od uzivatelov.

v Ostatné

7

556

28.10.2014 7:33

don jebot

V tomto fóre nie sú ďalšie neprečítané témy.

prihlasovanie užívateľov na phpBB

v Redakčné systémy

11

991

02.08.2006 7:33

MASH

V tomto fóre nie sú ďalšie neprečítané témy.

Zoznam uzivatelov oddelenych ciarkou

v PHP, ASP

3

641

23.06.2012 10:31

killer

V tomto fóre nie sú ďalšie neprečítané témy.

Google ide sledovať užívateľov

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Novinky

43

2060

31.01.2012 21:42

walther



© 2005 - 2024 PCforum, edited by JanoF