Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Bydlisko: Michalovce
Príspevok NapísalOffline : 19.02.2012 10:59

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 19.02.2012 12:49

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 19.02.2012 16:48

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 19.02.2012 18:03

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 21.02.2012 11:38

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 21.02.2012 12:34

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 21.02.2012 12:44

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 21.02.2012 13:40

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 21.02.2012 14:50

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 21.02.2012 18:31

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 22.02.2012 8:58

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 22.02.2012 10:05

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 25.02.2012 16:38

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 25.02.2012 21:48

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 26.02.2012 12:49

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 26.02.2012 18:41

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 26.02.2012 19:18

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
Bydlisko: Bratislava
Príspevok NapísalOffline : 26.02.2012 19:26

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 27.02.2012 15:02

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
Bydlisko: Michalovce
Príspevok Napísal autor témyOffline : 28.02.2012 16:36

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


Odpovedať na tému [ Príspevkov: 20 ] 


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

304

30.11.2012 16:32

zaciatocnik Zobrazenie posledných príspevkov

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

v PHP, ASP

5

618

22.04.2008 15:09

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zoznam uživateľov

v Redakčné systémy

1

783

21.02.2007 11:20

Freelan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. farby užívateľov

v Redakčné systémy

4

791

05.12.2006 7:31

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Nával užívatelov

v Správy pre vedenie fóra

21

3281

09.10.2005 20:36

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. WordPress role užívateľov

v Redakčné systémy

1

519

18.02.2014 18:35

don jebot Zobrazenie posledných príspevkov

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

565

04.02.2011 11:57

walther Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

3

652

02.10.2009 14:01

Frey Zobrazenie posledných príspevkov

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

v PHP, ASP

5

1593

02.06.2006 8:22

wlacho Zobrazenie posledných príspevkov

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

v PHP, ASP

10

724

18.07.2008 8:19

rooobertek Zobrazenie posledných príspevkov

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

v Sieťové a internetové programy

3

826

08.03.2008 13:20

fuco Zobrazenie posledných príspevkov

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

556

11.11.2006 14:59

johny128 Zobrazenie posledných príspevkov

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

v Ostatné

7

506

28.10.2014 7:33

don jebot Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prihlasovanie užívateľov na phpBB

v Redakčné systémy

11

947

02.08.2006 7:33

MASH Zobrazenie posledných príspevkov

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

1965

31.01.2012 21:42

walther Zobrazenie posledných príspevkov

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

v PHP, ASP

3

600

23.06.2012 10:31

killer Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra