Jump to content
php.lv forumi

Meklētājs


Dvielis

Recommended Posts

Man ir 4 tabulas, piemēram:

tabula_1

tabula_2

tabula_3

tabula_4

 

Kā likt mysql saprast, kad ievadu meklētāja laukā kādu vārdu, viņš no visām 4 tabulām izvelk attiecīgo tēmas nosaukumu. Tēmas lauks ir nosaukts par "tema". Katrā tabulā ir vienāds lauks - tema, bet dati tajā atšķirīgi.

Mēģināju šitā uztaisīt:

$sql = "SELECT * FROM tabula_1, tabula_2, tabula_3, tabula_4 where tema like '%$meklet%'";

 

Bet viņš man izmet šādu kļūdu:

Column 'tema' in where clause is ambiguous

Ķipa lauks 'tema' ir divdomīgs. Kas varētu būt pa kļūdu?

 

P.S.

Aizmirsu piebilst, ka ja pirms where uzraksta tikai 1 tabulas nosaukumu, tad viss iet, bet ja visas tabulas nosaukumus uzraksta, tad neiet.

Edited by Dvielis
Link to comment
Share on other sites

Ķipa lauks 'tema' ir divdomīgs. Kas varētu būt pa kļūdu?

Viss taču pareizi - lauks tema ir divdomīgs, jo atrodās veselās 4 tabulās. Kā lai MySQL zin, kuru no tiem tu domāji?

 

Vispār jautājums - kāpēc tev ir tādas 4 tabulas? Skaitļa esamība tabulu nosaukumos kā sufikss bieži vien liecina par nepareizu datubāzes struktūru.

 

Bet ja nu ļoti vajag, tad ar UNION jārīkojas:

$sql = "SELECT lauks FROM tabula_1 WHERE tema LIKE '%$meklet%' UNION SELECT lauks FROM tabula_2 WHERE tema LIKE '%$meklet%' UNION ...";

Link to comment
Share on other sites

×
×
  • Create New...