Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Zelený je lopuch,
fotbal to je hra...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Database (mysql,...) [ŽP: neomezená] (kategorie Programování) moderuje melkor_unlimited.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: dwnwiju
[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
noire noire svět není jen černobílý 21.10.2007 21:31  560
knedle:jj GROUP_CONCAT(DISTINCT pouzivam, ovsem nedostanu kyzeny vystup.
Dotaz je zhruba nasledovny...
WHERE povidka.id_kniha = $kniha
AND napsane.autor_id = autor.id
AND napsane.povidka_id = povidka.id
GROUP BY napsane.autor_id...
Jenze se svymi chabymi znalostmi predpokladam, ze to nebude dobre, protoze na vystup mi dorazi jen:
autor1, povidka
knedle knedle online - Krabice živých 21.10.2007 17:05  559
noire [557]: napadaji (a pouzivam) dve moznosti

1/ mas obycejny vystup / povidka - autor na jednom radku, pokud ma povidka vice autoru, znaci to vice radku ve tvem vysleku z DB, ten si projdu a narvu do pole:
[povidka a][autori][autor a]
[povidka a][autori][autor b]
[povidka b][autori][autor c]
[povidka c][autori][autor a]
...
a pak vypisuju toto pole povidek v cyklu a pripadne pres cyklus nebo php fci implode() spojuju autory, ktere u povidky vypisu


2/ pokud u tve mysql opravdu funguje group_concat, tak moznost
GROUP_CONCAT(DISTINCT prijmeni ORDER BY prijmeni DESC SEPARATOR ', ') as autori
takze dostanes seznam autoru (prijmeni) u jedne povidky oddelene carkami s mezerou -
takze vysledek pri tvem vystupu my mohl byt>
nazev povidky - autor A, autor B

pokud by si to chtel jeste nejak upravit - napr. vypisuje do tabulky a chces ty autory mit v bunce odradkovane, tak si ten retezec s autory rozdelis pomoci php fce explode(", ", $zaznam['autori']) / nebo muzes v tom sql dat primo separator [br] :)

a EtDirloth [558] to popsal taky pekne
etdirloth EtDirloth 21.10.2007 10:45  558
noire [557]:
najjednoduchsie to spravis tak, ze pomocou right join si sparujes vsetkych autorov s poviedkami a naopak (to pises, ze si uz zvladol) a potom to v aplikacii spracujes podla potreby

ak to nutne potrebujes vratit priamo z SQL servera, tak by si si mohol vyskladat stlpec "autori" v nejakej stored funkcii (nepoznam moznosti MySQL4.1.3) s vystupom napr. ako csv (co by bolo pouzitelne aj priamo na vystupe - teda citatelne uzivatelom), resp. ako pole, xml, ... neviem ako to potrebujes

ak ocakavas, ze ti server vrati premenlivy pocet stlpcov pre premenlivy pocet autorov, tak to je sql-hovadina - jedinu rozumnu moznost takehoto vystupu mas v transponovani klasickeho vystupu (tym myslim pevny pocet stlpcov x N-riadkov)
noire noire svět není jen černobílý 21.10.2007 09:51  557
knedle: MySQL 4.1.3
Tessien: jj dari se mi vypsat
"nazev knihy, autori 5, povidka 1" a
"nazev knihy, autori 6, povidka 1".
Samozrejme chci jen jeden zaznam, kdyz je stejna povidka.
Zkousel jsem vyuzit GROUP_CONCAT([DISTINCT], ale misto aby to vyplivlo
"nazev knihy, autori 5, 6, povidka 1"
dostal jsem jen
"nazev knihy, autori 5, povidka 1".
Takze si proste nevim rady.
knedle knedle online - Krabice živých 21.10.2007 08:24  556
jaka db? mysql? jaka verze?
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 21.10.2007 01:35  555
noire [554]: nevim, jestli chapu spravne tvuj dotaz (resp. on to ani neni dotaz, nybrz oznameni), ale - tu vazbu co chces udelat tak, ze budes mit nekolik zaznamu v tabulce "napsane". Napr. kdyz ta tabulka bude mit sloupce "id_autor" a "id_povidka" a budes chtit k povidce s id 1 nastavit autory s id 5 a 6, tak budes mit dva zaznamy - 1,5 a 1,6.
noire noire svět není jen černobílý 21.10.2007 00:56  554
poprosim o radu.
mam tabuli "povidka", ktera obsahuje id knihy. Pak tabuli "autor" a tabuli "napsane", ktera tvori vazby mezi "autor" a "povidka".
Povidkovou knihu a povidky s jednotlivymi autory na vypis dostanu v poho. Jenze nedari se mi vypsat pripad, kdy se na jedne povidce podileji 2 autori. Ve smyslu "autor1, autor2, povidka". Max. se mi podari " autor1, povidka". Podotykam, nejsem zadny prebornik v mysql ani v php a db si delam jen pro sve katalogizacni potreby vlastnich knih. Diky za pripadne rady.
pepak pepak - Pepak.net 2.10.2007 13:08  553
Melo by. Doporucuju vyzkouset.
eso eso 2.10.2007 10:37  552
Ma dotaz, kdyz v mySQL udelam prikaz

UPDATE tabulka SET
pocet =0,
vysledek = pocet + 2;

spocita to nejprve vysledek z puvodni hodnoty pole pocet a az pak pocet vynuluje?
pepak pepak - Pepak.net 7.9.2007 12:03  551
NO ja bych rekl, ze pokud se na to ma jeste neco navazovat, tak nejrychlejsi bude ta procedura...
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 7.9.2007 11:56  549
samotnyho by me to zajimalo srovnany z hlediska rychlosti....
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 7.9.2007 11:56  548
mno, diky za rady, ten group_concat se mi urcite hodi nekde jinde... problem je ze to cely jeste samozrejme k sobe vaze dalsi tabulky a spojit to s tim... uvidim jak rychly to bude a v pripade problemu zkusim nejaky ty pokusy ale ono asi uz samo o sobe to group_concat asi nebude z nejrychlsjsich, myslim... a pak jeste sacovat v tom co to spojilo pomoci hledani patternu...
to co jsem nenchtel ale nakonec udelal mi prijde zas jako nejcitsi reseni z profesionalnho hlediska i kdyz cekam jak se to bude zpomaloat s pribejvanim zaznamu...
pepak pepak - Pepak.net 7.9.2007 11:34  547
Jeste me napadlo, ze by se to dalo udelat takovou zbesilou (nicmene funkcni) oklikou:

SELECT id1
FROM tabulka
WHERE id2 IN (20,40)
GROUP BY id1
HAVING COUNT(*)=2 -- pocet ruznych ID2 v zavorce

Jedinym omezenim je, ze dvojice (id1,id2) musi byt vzdy jedinecna.
pepak pepak - Pepak.net 7.9.2007 11:32  546
Viz GROUP_CONCAT
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 7.9.2007 11:03  545
jde o mysql, id1 bude asi 25000, id2 asi stovky... uz jsem to udelal tak jak jsem psal... to co pises ty jsem prave doufal ze by mohlo existovat, neb by to slo vyuzit...

[ 1008 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt