Jump to content
php.lv forumi

Meklēšanas kverija izveidošana


test2

Recommended Posts

Tātad tākā es vel lidz šai dienai nēesmu izspratis tos joinus, nu vismaz nav bijusi nepieciešamība, un tagad ir!

Apstijos guglē bija kkādi piemēri, bet man ir bik savādāka situācija!

Tātad tabulas:

 

SELECT * FROM `jautaajumi`()

id nosaukums posts niks post_laiks skatiits atbildes cat slegts svariigums laiks

SELECT * FROM `atbildes`()

jautaajuma_id atbildes_id a_niks a_posts a_post_laiks

 

Tātad šis te viss ir vajadzīgs meklēšanai!

Līdz šim man ir šāds prosts kveris:

 

$kveris = mysql_query("SELECT * FROM jautaajumi WHERE nosaukums LIKE '%".mysql_real_escape_string($_GET['search'])."%' OR posts LIKE '%".mysql_real_escape_string($_GET['search'])."%'");

 

A man vajag, lai selektē searchoto arī no atbildes, bet nu kā redziet iekš atbildes tabulas nav nosaukums, skatiits ,atbildes, cat fieldi, vai viņus var "pieJOINot?" un kā? ! :|

Edited by test2
Link to comment
Share on other sites

Tev ir vistipiskākā JOIN situācija, nav nekāda "savādāka" situācija.

 

SELECT *
FROM jautajumi
JOIN atbildes ON jautajumi.id = atbildes.jautajuma_id
WHERE jautajumi.nosaukums LIKE '%$x%' OR jautajumi.posts LIKE '%$x%' OR atbildes.a_posts LIKE '%$x%'

Tipisks INNER JOIN's.

Link to comment
Share on other sites

Kveris the same, kādu iedevi:

 

SELECT *

FROM jautaajumi

JOIN atbildes ON jautaajumi.id = atbildes.jautaajuma_id

WHERE jautaajumi.nosaukums LIKE '%$x%' OR jautaajumi.posts LIKE '%$x%' OR atbildes.a_posts LIKE '%$x%'

 

Ēm itkā es kkādu sakarību šajā visā atradu: Tātad izveidoju jaunu jautājumu ar nosakumu testings, un posta saturu: testings tālāk spiedu sērch , kur bija rakstīts: testings , un kveris man veiksmīgi izvadīja tikkai šo te postu, tālāk es gāju uz postu un iepostoju atbildi ar saturu: testings, un spiedu meklēt velreiz, tagad viņš man izvadīja to ko pirmajā reizē, plus vel kkādu ne pa ķeksi postu, kura nosakumā ne postā nav kkas ar testings!

 

SELECT * FROM `jautaajumi`()
id nosaukums posts	niks post_laiks skatiits atbildes cat slegts svariigums laiks
1  testing	   testing   test  02:12:47	  5		  1	   4	 0		   0		1219227182

 

 

SELECT * FROM `atbildes`()
jautaajuma_id atbildes_id a_niks a_posts a_post_laiks
1							1		 test  testings  14:13:02

Link to comment
Share on other sites

Kveris the same, kādu iedevi:

Doh, nevis savu doto kveriju tev prasīju atpakaļ iedot (tiešām jocīgam jābūt, lai nesaprastu, ka es pats savu kveriju varu apskatīt divus postus augstāk?), bet gan tavu kveriju precīzi kāds tas izskatās MySQL'am (un nevis php kodā!).

 

Iedot kveriju un precīzu rezultātu, ko tas izvada ar atkārtojušām rindām. Plus par sliktu nenāktu arī pilni jautajumi un atbildes tabulas saturi, bet tos var arī vēlāk.

Ja nesaproti, ko prasu - izlasi vēlreiz, lēnām un pa vienam vārdam (kveriju un rezultātu).

 

Nevajag dīvainas sakarības meklēt, no kurām neko tāpat nevar izzīlēt (nez kurā kristāla bumbā var izzīlēt, ko tev tur nozīmē "iepostot" vai "izvadīja ķeksi"). Vajag apskatīt precīzus ieejas datus, algoritmu (kveriju) un rezultātu. Un ja ir pieeja pie paša koda, tad vajag debugot.

 

P.S. Kāpēc tu liec kautkādas jokainas iekavas aiz tabulas nosaukumiem SELECT kverijā?

Link to comment
Share on other sites

×
×
  • Create New...