| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 09.08.2010 14:56 | |
|
Česť!
Mám taký teoretický problém:
Použil som na výpis z DB mysql_fetch_array a while+foreach.
Takto:
Kód: 8query=´select * from table1´; 8result=mysql_query(8query); while(8row=mysql_fetch_array) { foreach(8row as 8item) { echo "<td>8item</td>"; } }
Robilo to jednu čudnú vec a síce, že každú položku 8item vypísalo dva krát po sebe.
Teda keď má v DB riadok: hodnota1 I hodnota2 I hodnota3
tak vypíše:
hodnota1 I hodnota1 I hodnota2 I hodnota2 I hodnota3 I hodnota3
Keď som do mysql_fetch_array doplnil druhý parameter MYSQL_ASSOC, tak to prestalo. Ale neprestalo mi z toho strašiť vo veži.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 09.08.2010 15:13 | |
|
Lebo v mysql_fetch_array su hodnoty oindexovane dvojako, aj podla nazvu stlpca, aj ciselnymi indexami. Skus si print_r($row).
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
>camo: co tak si nabuduce poriadne precitat dokumentaciu?
_________________ 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 |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal autor témy camo: 09.08.2010 15:58 | |
|
Stenley:
No veď som to čítal a usúdil som, že keď je ten druhý parameter nepovinný, tak že to musí fungovať aj bez neho. Resp. kde to tam presne je popísané...
Ďuri:
Nechápem...
mysql_fetch_array urobí z resultu pole. To pole má k dispozícii nejaké v tomto prípade oba indexy. Aj číselný aj slovný. Ale čo to má s dvojitým výpisom hodnôt toho poľa? To pole je stále len jedno nie? Len má k dispozícii dve možnosti indexovania z ktorých si užívateľ jednu vyberie. Kto je na vine foreach, alebo fetch_array???
Alebo nebodaj niekto iný?
|
|
Registrovaný: 26.12.06 Prihlásený: 16.11.19 Príspevky: 3971 Témy: 181 Bydlisko: Nitra / Bra... | Napísal emer: 09.08.2010 16:10 | |
|
pouzi mysql_fetch_row aelbo mysql_fetch_assoc...
mysql_fetch_array vrati merge z mysql_fetch_assoc a mysql_fetch_row...
_________________ Sorry za prelkepy |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 09.08.2010 17:25 | |
|
camo
Ak mas riadok v DB takyto:
Kód: foo | bar | baz <-- nazvy stlpcov --------+---------+-------- udaj1 | udaj2 | udaj3 <-- prvy riadok tabulky Tak mysql_fetch_array ti vrati taketo pole: Kód: array( [0] => "udaj1", [foo] => "udaj1", [1] => "udaj2", [bar] => "udaj2", [2] => "udaj3", [baz] => "udaj3" )
Preto mozes pouzivat aj ciselne, aj slovne indexy, ale pri prechadzani foreachom sa vypisalo vsetkych 6 elementov pola (2 x 3 rozne udaje). Snad je to teraz jasnejsie.
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal autor témy camo: 09.08.2010 19:16 | |
|
Ďuri:
No dobre ja to nejako strávim...
Ďakujem všetkým za rady...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
| 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
|
|