Združeanje 2 tabel

Pozdravljeni,

poskusil sem že veliko načinov za združevanje vendar mi nikakor ne uspe. Iskanje sicer deluje, če se išče samo po eni tabeli. Ker pa želim iskati po temah in odgovorih istočasno pa mi ne uspe nastaviti.

$forumteme = 1 tabela za iskanje - (teme LIKE '%$isci%')
$forum
odgovori = 2 tabela - za iskanje (sporocilo LIKE '%$isci%')

Uporabljam pa sledečo kodo:

$forumtemapreveriiskanje = mysqlquery("SELECT * FROM $forumteme Where (teme LIKE '%$isci%') ORDER BY ID DESC LIMIT ".(int)($sprehajaj-$rezultatovnastrani).", ".(int)$rezultatovna_strani);

Sem poskusil tudi na ta način vendar mi kljub temu ni uspelo...

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;

18 odgovorov

mogoče ti tole pomaga :

(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);

Sem poskusil tudi to vendar brez uspeha. :(

1

A ni dovolh en navaden join?

SELECT * FROM table1,table2 WHERE table1.polje LIKE 'pogoj' OR table2.polje LIKE 'pogoj' ....

Sedaj mi je z vašo pomočjo uspelo prebrati podatke... Vendar pa imam novo težavo. Pri tabeli $forum_teme bi želel prebrati samo naslednje podatke: tema in avtor. Vsi podatki so odvisni od vrstice: sporocilo. Vendar ne gre...

$forumtemapreveriiskanje = mysqlquery("SELECT * FROM $forumteme, $forumodgovori Where $forumodgovori.sporocilo LIKE '%$isci%' ORDER BY sporocilo DESC LIMIT ".(int)($sprehajaj-$rezultatovnastrani).", ".(int)$rezultatovna_strani);

2
$forum_tema_preveri_iskanje = mysql_query("
   SELECT **ft.tema, ft.avtor** FROM $forum_teme **AS ft**, $forum_odgovori
   WHERE $forum_odgovori.sporocilo LIKE '%$isci%'
   ORDER BY sporocilo DESC
   LIMIT ".(int)($sprehajaj-$rezultatov_na_strani).", ".(int)$rezultatov_na_strani);

Vse se vrti okoli:

SELECT **ft.tema, ft.avtor** FROM $forum_teme **AS ft**

Sem poskusil tudi zgorno kodo vendar mi ne deluje. Sem pa uspel napisati to kodo in deluje :). Prosil bi Vas samo to, če mi lahko poveste ali vse tako kot je treba (sintaksa)... Hvala

$forumtemapreveriiskanje = mysqlquery("SELECT $forumteme.*, $forumodgovori.* FROM $forumteme INNER JOIN $forumodgovori ON $forumodgovori.odgovoriid = $forumteme.odgovoriid Where $forumodgovori.sporocilo LIKE '%$isci%' ORDER BY sporocilo DESC LIMIT ".(int)($sprehajaj-$rezultatovnastrani).", ".(int)$rezultatovna_strani);

1

ne ni, kot se ti je že v desetih ostalih temah povedala tvoja koda kar kriči SQL INJECTION (http://en.wikipedia.org/wiki/SQL_injection)

Ne vem ali namensko ignoriraš ali se ti ne da malo raziskat na to temo

  • mysql_* se poslavlja, tako da je čas, da spremeniš
12

Ne ne ne ignoriram... samo nisem videl razliko.. bom malce preiskal. Hvala

1

Hmmm a mi lahko prosim tukaj nekdo reši tole kodo z SQL INJECTION, da vidim, kako to sploh gre...

$forumtemapreveriiskanje = mysqlquery("SELECT $forumteme.*, $forumodgovori.* FROM $forumteme INNER JOIN $forumodgovori ON $forumodgovori.odgovoriid = $forumteme.odgovoriid Where $forumodgovori.sporocilo LIKE '%$isci%' ORDER BY sporocilo DESC LIMIT ".(int)($sprehajaj-$rezultatovnastrani).", ".(int)$rezultatovna_strani);

3

uhhh napača...