djmartins Posted July 11, 2010 Report Share Posted July 11, 2010 Man ir tāda situācija, ka vēlos uztaisīt, lai kārtotu izveidotās diskusiju tēmas pēc pēdējā komentāra. Man ir divas tabulas 1) diskusijas, kura sastāv no id,tema,niks 2) komentari, kas sastāv no id,temasid,niks,datums. Man vajadzētu, lai tiek atēlotas tās diskusijas, kuras ir konkrētam cilvēkam, kas ielogojies mājas lapā, kas tiek kārtotas, pēc pēdējā komentāra. " Select * From diskusijas Where niks=$niks Order by (Select datums komentari) " Kaut kā šādi laikam vajadzētu izskatīties, taču kaut kas tomēr nav pareizi, tiek izmests erors, ka vajag norādīt vēl kādu parametru. Quote Link to comment Share on other sites More sharing options...
101111 Posted July 11, 2010 Report Share Posted July 11, 2010 Man pašam nesen bija līdzīga problēma. Nezinu vai šitais tev uzreiz nostrādās, bet ideja sekojoša. Pieņemu ka komentāra datums ir unix timestamp formātā. SELECT diskusijas.*, (SELECT MAX(date) FROM komentari WHERE temasid=diskusijas.id) as latest_comment WHERE diskusijas.niks=$niks ORDER BY latest_comment ASC Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 11, 2010 Report Share Posted July 11, 2010 (edited) variants bez apakšvaicājumiem select diskusijas.tema, max(komentari.datums) as datums from temas join komentari on diskusijas.id = Komentari.temasid group by tema order by datums Edited July 11, 2010 by php newbie Quote Link to comment Share on other sites More sharing options...
djmartins Posted July 12, 2010 Author Report Share Posted July 12, 2010 Izmēgināju abus gadījumus, taču rādās joprojam tāda pati kļūda! mysql_fetch_array() expects parameter 1 to be resource, boolean given Quote Link to comment Share on other sites More sharing options...
briedis Posted July 12, 2010 Report Share Posted July 12, 2010 Tas nozīmē, ka padotais parametrs nav resurss, visdrīzāk tas ir false vērtībā, jo kvērijs nav izpildījies, jo tajā ir kļūda. Kam tad Dievs devis mysql_error()?? :) Quote Link to comment Share on other sites More sharing options...
php newbie Posted July 12, 2010 Report Share Posted July 12, 2010 variants bez apakšvaicājumiem select diskusijas.tema, max(komentari.datums) as datums from temas diskusijas join komentari on diskusijas.id = Komentari.temasid group by tema order by datums un vēl vajadzētu grupēt pēc id jo varētu būt diskusijas ar vienādiem nosaukumiem. un sagrupē arī pēc nosaukuma, lai varētu to izvilkt šitādus piemērus būtu jāspej izmantot Quote Link to comment Share on other sites More sharing options...
djmartins Posted July 16, 2010 Author Report Share Posted July 16, 2010 (edited) $d="SELECT diskusijas.tema, Max(dkomentari.datums) as datums from diskusijas join dkomentari on dkomentari.temasid=diskusijas.id where autors='juritis' group by tema order by datums DESC"; $rezultats=mysql_query($d) or die(mysql_error()); while($diskusija = mysql_fetch_array( $rezulatats )) { echo"$diskusija[1] $diskusija[0]<br>"; } Kādēļ, pēc šāda pieprasījuma tiek izvadīti tikai 4 ieraksti, ja pēc dotajiem parametriem tiem vajadzētu būt krietni vairāk? Man ir nepieciešams, lai visus ierakstus izvada, atiecīgajam lietotājam juritim, un tie tiek sakārtoti atbilstoši dilstošā secībā pēc pēdējā pievienotā komentāra. Edited July 16, 2010 by djmartins Quote Link to comment Share on other sites More sharing options...
briedis Posted July 16, 2010 Report Share Posted July 16, 2010 (edited) Neīsto kolonnu grupē... Edited July 16, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
djmartins Posted July 16, 2010 Author Report Share Posted July 16, 2010 Ja vispār negrupē, tad tiek izvadīts tikai viens ieraksts. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.