Autor Zpráva
P3T3R
Profil
Dobrý deň,

mám problém s porovnávaním tabuliek.

Sú 2 databázy na 1 servery, kde sú 2 tabuľky: prva_tabulka a druha_tabulka

<?php

										   $prva_tabulka = "SELECT * FROM databaza_jedna WHERE tabulka_jedna ORDER BY 'pole_jedna' DESC";
										   $druha_tabulka = "SELECT * FROM databaza_dva WHERE tabulka_dva ORDER BY 'pole_dva' DESC";
												
										   $vysledok = strpos($prva_tabulka, $druha_tabulka);
										    if($vysledok === FALSE) {
											   echo  "nenajdene";
												}
												else {
													echo "najdene";
												}										   																							
										    echo "</td>
											" ;   
                                  }
                                  mysql_free_result($result);

                                ?>


Potrebujem ak sa v databaza_jedna zhoduje s databaza_dva pole pole_jedna a pole_dva vypíše zhoda ak nie tak nenájdené.

Ďakujem
YoSarin
Profil
P3T3R:
ech? Podle tohohle textu kontroluješ jestli obsah sql dotazu (ne výsledek, ale přímo ten string) je obsažen v druhém sql dotazu (opět jen ve stringu). Porovnáváš dva stringy, s databází to nemá naprosto nic společného...
edit
Prostuduj si návody a uvidíš...
P3T3R
Profil
YoSarin:
Bože :D Dnes mám fakt blbý deň. S php nie som ešte moc v pokročilom štádiu.

Čo sa týka toho doplnil som tam mysql_query aby to vytiahlo z db a porovnalo cez strpos ale nefunguje to nejak :-/ robím niečo zle?
YoSarin
Profil
P3T3R:
Bude toho víc - být tebou pořádně bych prostudoval ty návody - pěkně od začátku až do konce.
1) prostuduj návody (bez ohledu na to, jak dlouho to bude trvat a jak a pomalu to půjde)
2) podle SQL dotazu si pleteš pojmy "databáze", "tabulka" a "sloupeček"
3) podívej se do manálu co dělá funkce strpos (jaké bere parametry, co porovnává)
4) podívej se do manuálu co dělá mysql_query (co je návratová hodnota)
P3T3R
Profil
YoSarin:
No len by som to potreboval skôr troška, študujem to pomaly, je toho dosť.

Nejaké riešenie by si mi poradil? Asi by som to mal riešiť cez LEFT JOIN ako som sa dočítal zatiaľ, ale nejak mi to stále nejde :-/
okolojdouci
Profil *
P3T3R:
Zopakoval bych, co napsal YoSarin.

Dotaz má vypadat takto:
SELECT * FROM tabulka WHERE pole = hodnota ORDER BY pole DESC

Ty máš:
SELECT * FROM databaza_jedna WHERE tabulka_jedna ORDER BY 'pole_jedna' DESC

Z toho plyne, že nemáš jasno ani v základních pojmech.

Potrebujem ak sa v databaza_jedna zhoduje s databaza_dva pole pole_jedna a pole_dva vypíše zhoda ak nie tak nenájdené.
To je takový nesmysl, že na to nelze odpovědět. Databáze můžou být stejné, můžou být identické, ale ani jedno zřejmě není to, na co se snažíš zeptat.
okolojdouci
Profil *
Chybějící diakritika a interpunkce je fajn bonus.
P3T3R
Profil
okolojdouci:
Ďakujem za rady.

Čo sa týka toho dotazu to mám už upravené, len sme sa asi nepochopili v tom čo potrebujem.
Ide o porovnanie dvoch polí v dvoch tabuľkách. Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené, ak nie tak nenájdené.

Pôjde to cez ten strpos? Alebo ako to vyriešiť?
okolojdouci
Profil *
P3T3R:
Čo sa týka toho dotazu to mám už upravené, len sme sa asi nepochopili v tom čo potrebujem.
Ide o porovnanie dvoch polí v dvoch tabuľkách. Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené, ak nie tak nenájdené.

Nepochopili sme sa ani na druhý pokus.
"Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené" je shluk náhodně vygenerovaných slov?

Můžu jen odhadovat, jestli chceš vypsat položky, které v jedné tabulce jsou a v druhé ne, nebo třeba něco úplně jiného.
Čo sa zhoduje?
Čo sa má vypísať?
P3T3R
Profil
okolojdouci:
Nepochopili sme sa ani na druhý pokus.
"Ak sa z poľa 1 zhoduje v poli 2 vypíše nájdené" je shluk náhodně vygenerovaných slov?

Sú dva polia v dvoch tabuľkách na jednom servery (mám mysql root).
V poli 1 sú čísla, ktorú sú aj v poli 2. Nie sú zhodné pod IDčkom. Preto potrebujem porovnať pole_jedna s pole_dva,
a ak sa z pola_jedna nachádza číslo v pole_dva vypíše zhoda.

Neviem, či sme sa pochopili, alebo mi dáte nejaký kontakt bližší a vyriešime to tam :)
YoSarin
Profil
SELECT * FROM tabulka_1 WHERE sloupec_1 NOT IN (SELECT sloupec FROM tabulka_2);
slonicek
Profil *
tu navod ako porovnat tabulky v db
http://www.projectik.eu/index.php/database/oracle/oracle-sql/item/250-sql-porovnanie-zhodnosti-obsahu-dvoch-tabuliek
juriad
Profil
Ano, ale to funguje jen na Oracle, MySQL operátor MINUS nemá, proto se musí nahrazovat buď konstrukcí s NOT IN nebo LEFT JOIN s podmínkou na NULL. Porovnávání shody ve všech sloupcích je pak vážně chuťovka, ale to P3T3R naštěstí nepotřeboval.
Chvíli hrozilo, že bude chtít porovnávat tabulky v různých databázích, ale i na to naštěstí existuje řešení v obou databázových systémech. (Nevím, jak je podporované na hostinzích.)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0