spy Ierakstīts Decembris 14, 2014 Share Ierakstīts Decembris 14, 2014 (labots) Labdien! Tātad man vajadzētu lai iesūtnē tiek parādīta tikai viena vēstule no katra cilvēka ar kuru ir bijusi sarakste. Plus vajag lai pieprasījumā vēstules kas nav lasītas tiek attelotas virs nelasītajām, bet sašķirotas pēc datuma(jaunākās nelasītās ir augstāk kā vecākās nelasītās). Un protams vajag lai tiek parādīts tā lietotāja vārds no kura ir vēstule. Ir vajadzīgs tikai vēstuļu saraksts, ne pašas vēstules. Ir divas tabulas. Vēstuļu tabula kura izskatās aptuveni šādi: | id | laiks | no id | kam id | saturs | status | saņēmējs dzēsis | sūtītājs dzēsis | un lietotāju tabula kura izskatās aptuveni šādi: | lietotaja id | lietotāja vārds | parole | Esmu izmēģinājis dažādus pieprasījumus ar ORDER BY , bet nekas kas mani apmierinātu nav sanācis. Neesmu arī nekāds lielais Mysql pārzinātājs Būtu ļoti pateicīgs ja kāds varētu ieteikt kāds pieprasījums šeit ir jāizmanto. Labots Decembris 14, 2014 - spy Link to comment Share on other sites More sharing options...
spy Decembris 14, 2014 Author Share Decembris 14, 2014 Testēju uz localhost, mainu vaicājumu speciālā testa skriptā. Link to comment Share on other sites More sharing options...
ju Decembris 14, 2014 Share Decembris 14, 2014 (labots) Tev jau jāšķiro vismaz pēc pāris kolonnām. Tad vēl vajadzētu GROUP BY lietotaja id, un tad kārtot pēc statusa, un tikai tad pēc datuma, kam vēl jāuzliek max parametrs. Sen neko neesmu rakstījis, bet varētu būt kaut kā tā select * from "tava e-pastu tabula" group by noid order by status (asc/desc nezinu kādas tev tur vērtības), laiks desc Labots Decembris 14, 2014 - ju Link to comment Share on other sites More sharing options...
usver Decembris 14, 2014 Share Decembris 14, 2014 vispār ir nepieciešami kādi statusi, ja pietiek reāli ar "read" lauku, vai ir izlasīts - true/false? dabūt vispār visas vēstules, vispirms nelasītās -- nelasītās vispirms select * from messages where no_id = $ME or kam_id = $ME and status <> 'read' order by laiks DESC UNION -- lasītās pielasam select * from messages where no_id = $ME or kam_id = $ME and status = 'read' order by laiks DESC Link to comment Share on other sites More sharing options...
pucis Decembris 14, 2014 Share Decembris 14, 2014 Man sanāca šitāds mežonis, par ātrdarbību neatbildu. SELECT vestules.id, vestules.laiks, vestules.status, lietotaji.vards FROM vestules, lietotaji, (SELECT MAX(laiks) AS laiks, userid FROM (SELECT MAX(laiks) AS laiks, noid AS userid FROM vestules WHERE kamid = @MansID GROUP BY noid UNION SELECT MAX(laiks) AS laiks, kamid AS userid FROM vestules WHERE noid = @MansID GROUP BY kamid ) visilietotaji GROUP BY userid ) topvestules WHERE vestules.laiks = topvestules.laiks AND topvestules.userid = lietotaji.id ORDER BY vestules.status, vestules.laiks DESC Link to comment Share on other sites More sharing options...
spy Decembris 15, 2014 Author Share Decembris 15, 2014 Paldies visiem! Šķiet ka palikšu pie klasiskā iesūtnes attēlojuma Link to comment Share on other sites More sharing options...
nevertell Decembris 15, 2014 Share Decembris 15, 2014 Aizej uz LU un atsēdi kādu Karnīša lekciju, noderēs. Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!