Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kdo je autorem výstavy obrazových fotografií „Očima Hanse Christiana Andersena“?

V dnešní soutěži hrajeme o:



PHP a databáze

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: PHP a databáze

Autor: peta1 ♂

13:32:34 19.05.2014

(Ja chodim teda na http://diskuse.jakpsatweb.cz/ a http://programujte.com/forum/, pac tady to nejak umrelo po te, co predelavali 1-2 zpet forum a asi mesic nejelo.)

1) SELECT * udela vyber vseho, neni to dobre pouzivat, protoze ti to muze rozsypat kod, kdyz pridas do db novy sloupec, ktery nekde chces mit, ale ve vetsine pripadu ne, proto je lepsi pouzit vypis jmen sloupcu. Muzes to treba pro tvuj pripad kombinovat takto:

SELECT tab1.id, tab2.*

2) Pokud jsou jmena sloupcu stejna, tak Mas dost problem se SELECT *, protoze ti sql vyhodi chybu, je treba ty sloupce pro vysledek prejmenovat, treba takto

SELECT tab1.id AS tab1_id, tab2.*
(mas tab1.id ale i tab2.id a * vybira vsechno z obou tabulek)

3) Obvykle se k dotazu pripojuji data z jine tabulky pomoci LEFT JOIN. Potrebujes treba zobrazit data z nejake tabulky a k nim doplnit hodnoty z jine. Treba mas seznam, co si kdo koupil a k tomu mas id uzivatele. Tak das select na tabulku seznam koupeneho zbozi a pomoci LEFT JOIN pripojis dalsi udaje. Melo by to byt udajne stejne rychle nebo mozna mene narocnejsi na pamet nez obe obri tabulky se snazit propojovat.
SELET tab1.id, tab2.id AS tab2_id, tab1.jmeno, tab2.zbozi
FROM tab1 LEFT JOIN tab2 ON tab2.id=tab1.tab2_id

Citovat příspěvek

 

Re: PHP a databáze

Autor: webhosting ONEbit ♂

15:24:53 28.04.2014

Elefantik napsal/a

Pokud mám dvě tabulky s parametrem ID a ty spojím v příkazu SELECT pomocí příkazu INNER JOIN,
pak při odkazu na id se mi vždy vrátí hodnota z připojené tabulky a já potřebuji id tabulky první.

Kód:
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.jmeno_id = tab2.id

echo "ID:".$zaznam["id"];

Tento výpis vrací steknou hodnotu jako $zaznam["jmeno_id"]

Je to normální?

Elefantik napsal/a

Pokud mám dvě tabulky s parametrem ID a ty spojím v příkazu SELECT pomocí příkazu INNER JOIN,
pak při odkazu na id se mi vždy vrátí hodnota z připojené tabulky a já potřebuji id tabulky první.

Kód:
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.jmeno_id = tab2.id

echo "ID:".$zaznam["id"];

Tento výpis vrací steknou hodnotu jako $zaznam["jmeno_id"]

Je to normální?



Dobrý den, je to naprosto normální. Ve Vašem případě bude nejlepší manuálně vypsat potřebné sloupce a vytvořit si aliasy pro ty, které jsou stejně pojmenované.
Takže místo Vašeho SQL použijete něco ve smyslu:
SELECT tab1.id as tab1_id, tab1.jmeno_id, atd. FROM tab1 INNER JOIN tab2 ON tab1.jmeno_id = tab2.id

Doufáme, že Vám tato odpověď pomohla.
Hezký den přeje webhosting ONEbit

Citovat příspěvek

 

PHP a databáze

Autor: Elefantik ♂

10:22:09 18.04.2014

Pokud mám dvě tabulky s parametrem ID a ty spojím v příkazu SELECT pomocí příkazu INNER JOIN,
pak při odkazu na id se mi vždy vrátí hodnota z připojené tabulky a já potřebuji id tabulky první.

Kód:
SELECT * FROM tab1 INNER JOIN tab2 ON tab1.jmeno_id = tab2.id

echo "ID:".$zaznam["id"];

Tento výpis vrací steknou hodnotu jako $zaznam["jmeno_id"]

Je to normální?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: