Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 17 ] 
AutorSpráva
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok NapísalOffline : 02.11.2008 21:18

Nazdarek. Potreboval by som poradit. Mam spravene dve tabulky. V tabulke1 mam id, mena, krajinu uzivatelov atd. a v tabulke2 mam id_uzivatela (zhodne s ID z tabulky1) , id_albumu a pod. No a potrebujem spravit vyber z tabuliek tak, aby mi pri zadani podmienky napr. krajina vybralo z tabulky2 id_albumu, ale tak aby mi od kazdeho uzivatela vybralo len jeden album (posledny, napr.podla casu): Skusal som to takto:

Kód:
select tabulka1.id, tabulka1.krajina, tabulka2.id_uzivatela, COUNT(tabulka2.id_albumu) AS numrows
from tabulka1 where id_uzivatela in (select id_uzivatela from tabulka2 group by id_uzivatela having count(*) <=1)
left join tabulka2 on rtabulka1.id = tabulka2.id_uzivatela


Lenze takto to vobec nefunguje. Totiz potrebujem mat zachovane to COUNT(id_albumu) AS numrows kvôli strankovaniu. Jedniny sposôb ako mi to islo bolo:
Kód:
select COUNT(id_albumu) AS numrows from tabulka2 where id_uzivatela in (select id_uzivatela from tabulka2 group by id_uzivatela having count(*) <=1)


Lenze ako nahle som k tomu pripojil dalsiu tabulku, tak to prestalo fungovat. Neviete mi niekto poradit ako by mal spravne vyzerat ten zapis?


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 03.11.2008 8:19

from tabulka1 where ... left join? Pozri si syntax select, takto to určite nespravíš
where až na koniec v tomto prípade







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 03.11.2008 10:47

rooobertek..no ja som vychadzal z clanku na linuxe:
http://www.linuxsoft.cz/article.php?id_article=882

Mozno som to zle pochopil...Ale aj ked som dal where na koniec, tak to nejde.. :(


Offline

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

Registrovaný: 04.04.07
Prihlásený: 27.06.21
Príspevky: 532
Témy: 35
Bydlisko: Bratislava
Príspevok NapísalOffline : 03.11.2008 10:59

Kód:
select t1.id, t1.krajina, t2.id_uzivatela, COUNT(t2.id_albumu) AS numrows from t1 left join t2 on t1.id = t2.id_uzivatela where id_uzivatela in (select id_uzivatela from t2 group by id_uzivatela having count(*) <=1)


myslel si to takto nejak? neskusal som to, ale join musis mat pred where.







_________________
CPU: AMD Phenom II 940 QUAD X4 BE AM2+, chladic: Arctic Cooling Freezer 64 Pro, RAM: 4GB DDR2 800MHz PC6400, MB: M2N-E SLI, VGA: RX 4870 GAINWARD HD4870 1GB, HDD: WD 1TB, Zdroj: CORSAIR 750W TX
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 03.11.2008 11:26

No skusil som to takto, ale stale mi vypisuje:
Error, query failed Neviem v com by mohol byt problem...
Ale rozmyslal som, ze to spravim inac..Len neviem ci to je aj spravne.. V podstate ja pre strankovanie potrebujem zistit, kolko "riadkov" sa mi vrati z Tabulky. Takze Select by som urobil takto:

Kód:
$result  = mysql_query("select t1.meno, t1.krajina, t2.id_albumu from t2 join (select id_uzivatela, max(cas) as cas
from t2 group by id_uzivatela) as nejvyssi on t2.id_uzivatela = nejvyssi.id_uzivatela and t2.cas = nejvyssi.cas
left join t1 on t2.id_uzivatela = t1.id");


A potom by som len vlastne na strankovanie pouzil len:
Kód:
$riadkov = mysql_num_rows($result);
$maxPage = ceil($riadkov/$rowsPerPage);


Takto som to aj skusal a ide to, len neviem, ci je to aj spravne. :roll:


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 03.11.2008 12:25

naozaj si pozri syntax selectu, pozri príručku mysql.
Máš tam 2x FROM. To už načo?







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 05.11.2008 13:11

No to som uz opravil/vyriesil.. Ale teraz mam trocha iny problem. Potreboval by som si urobit funkciu, ktora mi vypise data z tabulky. Ide o nazvy albumov, ktorych moze byt viac od jedneho uzivatela. Mam nieco take:

Kód:
function vypis($r)
{
 while ($udaje = mysql_fetch_array($query))
{
$r=$udaje['nazov'];
echo "$r";
$r++;
}
}
vypis ($r);


Lenze vypisuje mi chybove hlasenie:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL ..
A neviem ako to nahradit, aby mi to jednoducho vypisalo v tej funkcii vsetky nazvy.. Neviete mi poradit??


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 05.11.2008 13:51

fetchuje sa vysledok, nie query.
Kód:
$query = "SELECT * FROM tabulka";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
echo $row['stlpec'];
}







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 05.11.2008 14:28

No aj ked som to upravil takto tak, aj tak mi to vypisuje chybove hlasenie.
Jednoducho, akonahle dam do funkcie :
Kód:
function vypis()
{
 while ($udaje = mysql_fetch_assoc($result))
{
echo $udaje['stlpec'];
}
}


akykolvek argument(mysql_fetch_assoc,mysql_fetch_array,mysql_fetch_row a pod.), tak mi to vypise chybu..Ako mam teda napisat tu funkciu, aby mi vypisalo vsetky nazvy z tabulky?


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 29.10.07
Prihlásený: 27.10.23
Príspevky: 1395
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 05.11.2008 14:34

skus trochu postudovat zaklady php. problem bude ze v tej funkcii nevidis $result. posielas ho tam? je to globalna premenna?







_________________
PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME
Mobil: Xiaomi POCO F2 PRO
Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 05.11.2008 14:39

function vypis() {
global $result;
...







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 05.11.2008 14:40

OK..Tak tu dam cely kod:
Prvykrat som to skusal takto:


Kód:
$query = "select nazov from tabulka where id_uzivatela='{$zaznam['id_uzivatela']}'";
$result = mysql_query($query);
function pokus()
{
while($row = mysql_fetch_assoc($result)){

echo $row['nazov_albumu'];
}
}
 pokus();


Vypisalo mi to chybove hlasenie.

Druhykrat som to cele dal do funkcie:
Kód:
function pokus()
{
$query = "select nazov from tabulka where id_uzivatela='{$zaznam['id_uzivatela']}'";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){

echo $row['nazov_albumu'];
}
}
 pokus();

Takto to uz nevypisalo vobec nic...


Offline

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

Registrovaný: 17.10.08
Prihlásený: 15.12.08
Príspevky: 24
Témy: 4
Príspevok NapísalOffline : 05.11.2008 20:08

niesom si isty ale takto by to neslo ?

Kód:
function pokus($result)
{
while($row = mysql_fetch_assoc($result)){

echo $row['nazov_albumu'];
}
}
echo pokus($result);


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 05.11.2008 22:13

newboy, v tom druhom pokuse pre zmenu nemáš $zaznam, daj si global $zaznam.
Pomohlo by ti, keby si si nastavil niekde na začiatku error_reporting(E_ALL|E_STRICT), ale pozor, keď to nasadíš naostro na web, tak to musí ísť preč







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 22.03.07
Prihlásený: 04.07.14
Príspevky: 344
Témy: 97
Príspevok Napísal autor témyOffline : 06.11.2008 13:19

rooobertek..Mal si pravdu s tym $zaznam. Jednoducho mi ta funkcia nebrala v dopyte podmienku
Kód:
where id_uzivatela= $zaznam['id_uzivatela']
. Riesenie bolo jednoduche. stacilo do funkcie pridat $zaznam :D Cize na zaciatok dat :
Kód:
function pokus($albumy, $zaznam)
{  ......
}


Ja neviem ci to je len moj problem, alebo to je nepisane pravidlo pre vsetkych, ale vzdy ked mi vyskoci nejaky problem, tak nakoniec zistim, ze je to len mala/banalna chyba ktora vznikla viac menej mojou nepozornostou. Napr. Aj teraz. Keby som si hned na zaciatku overil, ci mi prenasa podmienku where id_uzivatela= $zaznam , nemusel som zabit takmer cely den a vypisovat sem do fora.. :loony:


Offline

Skúsený užívateľ
Skúsený užívateľ
Omedzeny vyber z tabuliek

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1585
Témy: 96
Príspevok NapísalOffline : 06.11.2008 15:19

To je ten lepší prípad. Horšie je ak ti vyhodí nejakú všeobecnú chybu ako internal server error 500 a rieš si... zistíš, ako spraviť na to nejakú záplatu, ale netušíš, prečo sa to tak deje







_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

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

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 06.11.2008 16:34

ja osobne odporúčam pri vypisovaní chýb:
pokiaľ píše Internal Error 500 - skontrolovať bodkočiarky, zátvorky, premenné
Pokiaľ však sa nerobí to čo má ... tak skúšam vypísať konkretné reťazce alebo prememnné

keď sa aj tak nedarí tak pomáha klasické komentovanie ...


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


Podobné témy

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

v Databázy

9

718

05.01.2010 20:22

rooobertek Zobrazenie posledných príspevkov

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

v Databázy

7

1004

26.01.2011 15:30

emer Zobrazenie posledných príspevkov

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

v Databázy

2

736

27.02.2011 16:57

coldak Zobrazenie posledných príspevkov

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

v Databázy

2

299

30.11.2012 16:32

zaciatocnik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zoradeny vyber z dvoch tabuliek naraz

v Databázy

3

401

06.02.2014 7:02

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyber poslednych zaznamov z 2 tabuliek

v Databázy

2

317

13.04.2013 17:02

zaciatocnik Zobrazenie posledných príspevkov

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

v Databázy

2

768

06.02.2009 12:30

awtt Zobrazenie posledných príspevkov

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

v Databázy

1

461

22.11.2011 13:09

GoodWill Zobrazenie posledných príspevkov

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

v Databázy

4

390

19.12.2013 11:21

ChickenHunter79 Zobrazenie posledných príspevkov

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

v Databázy

2

894

01.02.2010 13:35

Antuanet Zobrazenie posledných príspevkov

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

v Databázy

3

1111

25.02.2008 16:27

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Optimalizácie velkých tabuliek

v Databázy

2

643

04.04.2010 9:50

Unlink Zobrazenie posledných príspevkov

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

v Ostatné programy

5

489

12.07.2017 12:23

barosko Zobrazenie posledných príspevkov

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

v Databázy

11

629

19.01.2010 9:47

pilná lama glama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výpis z viacerých tabuliek

v Databázy

4

610

27.01.2010 23:03

Merlin_sk Zobrazenie posledných príspevkov

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

v Databázy

2

727

27.01.2015 15:12

Sanchezo 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