Autor | Zpráva | ||
---|---|---|---|
Karolína Profil * |
#1 · Zasláno: 12. 5. 2011, 23:47:59
Dobrá večer. Poradí mi nějaká hodná "duše" jak bych mohla vypsat data ze dvou db najednou? Mám nedifonovanou jednu db se kterou pracuji ale v jednom případě si potřebuji odskočit do jine db ze které načtu jeden sloupec a případně ho updatuji. Děkuji všem za pomoc!
|
||
pcmanik Profil |
#2 · Zasláno: 13. 5. 2011, 00:02:03
Karolína:
Skutocne myslis DB a nie tabulku? Ak chces skutocne inu db, tak jednoducho vytvoris dalsie spojenie a odkazovat na neho budes v mysql_query. Staci si pozret oficialny manual tychto dvoch funkcii. |
||
Keeehi Profil |
#3 · Zasláno: 13. 5. 2011, 00:43:25
Prostě v scriptu si vybereš jinou databázi:
//kód mysql_select_db ("druhá_db"); mysql_query("...."); mysql_select_db ("první_db"); //další kód Případně http://cz.php.net/manual/en/function.mysql-db-query.php, ale od verze 5.3.0 je už zastaralá. |
||
Louka Profil |
#4 · Zasláno: 13. 5. 2011, 08:49:21
Karolína:
To, co napsal Keeehi je za předpokladu, že obě tabulky jsou na stejném serveru a dostupné pod jedním přihlašovacím jménem (tedy vidíš obě po loginu do např. phpMyAdmina). Jestliže jsou na jiných serverech, bude třeba ukončit první spojení a pak navázat druhé. |
||
Mike8748 Profil |
#5 · Zasláno: 13. 5. 2011, 08:55:18
Louka:
„Jestliže jsou na jiných serverech, bude třeba ukončit první spojení a pak navázat druhé.“ a to jako proč? mysql_connect vraci identifikátor spojení s databází, daná hodnota se použije jako druhý parametr při volání mysql_query. není důvod pro ukončování spojení jenom proto že se chceš připojit k jinému databázovému serveru, klidně můžeš být napojen na 10 databází a pracovat s nimi najednou. |
||
Louka Profil |
#6 · Zasláno: 13. 5. 2011, 11:56:51
Mike8748:
Díky, druhý argument mysql_query mě nenapadl. A když na konci skriptu chci ukončit spojení, tak zavolám jen mysql_close(); a ukončí se vše, nebo je třeba pro každé spojení provést mysq_close($id_spojeni)? |
||
pcmanik Profil |
#7 · Zasláno: 13. 5. 2011, 17:38:06
Louka:
Na co asi existuje oficialny manual? Na buduce prejav aspon trochu namahy :D |
||
Louka Profil |
#8 · Zasláno: 13. 5. 2011, 22:02:51
Promiň, pcmaniku, ale když už jsem tu byl a napadl mě v téhle souvislosti dotaz, tak jsem se nezávazně optal a šel dál :).
|
||
Karolína Profil * |
#9 · Zasláno: 14. 5. 2011, 04:25:31
Keeehi:
Tak to vůbec nefunguje, zkoušela jsem se přihlásit do PMA se stejným heslem a uložit nějaké data. Všechno OK, ale v php mi to pořád píše, že jsem v první table.. prvnitable.prvnisloupec a mělo by to být druhatable-prvnisloupec.. Table 'table1.sloupec1' doesn't exist Tak fakt nevím :( |
||
Karolína Profil * |
#10 · Zasláno: 14. 5. 2011, 12:27:38
Nikdo prosím nevíte kde můžu hledat ještě problém? :(
|
||
Karolína Profil * |
#11 · Zasláno: 14. 5. 2011, 13:03:28
Ještě mě napadá, nevadí to, že to volám ve funkci tu změnu tabulky? Díky
|
||
Karolína Profil * |
#12 · Zasláno: 14. 5. 2011, 14:20:41
Tak to funguje v pohode mimo funkci, ale ve funkci se db neprepne, jak to muzu opravit aby to jelo i ve funkci?
|
||
Keeehi Profil |
#13 · Zasláno: 14. 5. 2011, 15:04:24
Karolína:
Ukaž tu funkci. Jinak ti neporadíme. Ale mé věštecké schopnosti mi říkají, že nevíš, že proměnné uvnitř funkce a proměnné mimo funkci jsou úplně jiné proměnné, i když se stejně jmenují. A proč zrovna tato věštba? Protože tento týden budeš nejspíš třetí, kdo má takový problém. Takže kdyby jsi si to tady prošla a prohledala, asi by jsi na to narazila. Třeba dneska ráno. |
||
Karolína Profil * |
#14 · Zasláno: 14. 5. 2011, 15:45:06
Tohle funguje v pohodě
<?php mysql_select_db($db_select_2, $link); ?> a tohle nefunguje <?php function sel_db(){ global $db_select_2; global $link; mysql_select_db($db_select_2, $link); } ?> Díky |
||
Keeehi Profil |
#15 · Zasláno: 14. 5. 2011, 17:54:30
Karolína:
Fungovat to musí. Nezapomínáš tu funkci zavolat? |
||
nightfish_ Profil * |
#16 · Zasláno: 14. 5. 2011, 18:28:36
následující syntaxe by použít nešla?
SELECT * FROM `databaze1`.`tabulka1` ... SELECT * FROM `databaze2`.`tabulka5` ... (tedy v případě, že jsou obě databáze viditelné v rámci aktuálního spojení) |
||
Časová prodleva: 13 let
|
0