test2 Posted August 19, 2008 Report Share Posted August 19, 2008 (edited) 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 August 19, 2008 by test2 Link to comment Share on other sites More sharing options...
bubu Posted August 19, 2008 Report Share Posted August 19, 2008 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 More sharing options...
test2 Posted August 20, 2008 Author Report Share Posted August 20, 2008 Sk. ok, plds! Bet kāpēc ieraksti atkārtojas? Pat ir tā,ka jautaajumam nav atbilzhu tabulaa, bet aniivai vinsh kaadas 11 reizes atkaartojas nu izvadas! Link to comment Share on other sites More sharing options...
bubu Posted August 20, 2008 Report Share Posted August 20, 2008 Iedod precīzi kādu kveriju padevi un kādi dati izvadījās (to ierakstu, kas tev tur atkārtojās). Link to comment Share on other sites More sharing options...
Aleksejs Posted August 20, 2008 Report Share Posted August 20, 2008 Klausi "ļauno jūzeri bubu" :D Bet vēl vēlams arī abu tabulu saturu (var tikai dažus ierakstus no katras), kas rada šo problēmu. Link to comment Share on other sites More sharing options...
test2 Posted August 20, 2008 Author Report Share Posted August 20, 2008 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 More sharing options...
Aleksejs Posted August 20, 2008 Report Share Posted August 20, 2008 Parādi arī ko konkrēts vaicājums atgriež. Link to comment Share on other sites More sharing options...
bubu Posted August 20, 2008 Report Share Posted August 20, 2008 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 More sharing options...
Recommended Posts