KarlisBa Posted May 27, 2008 Report Share Posted May 27, 2008 Sveiki! Kā lai uztaisa tādu skriptu, kas parāda 6. ierakstus no db līdz, ko rodas 7. ieraksts pēdējais no ierakstiem tiek izdzēsts un parādās jaunais ieraksts viņa vietā. Tāda kā čata funkcija ar max 6. redzemiem ierakstiem. Vēl, kas tie ieraksti nerādas dabiskā secībā piemēram testēju ierakstot ciparus no 1-7 katru atsevišķi, bet viņi tika parādīti jauktā secībā. Pašreizējais skripts, kas parāda tikai info no db. Link to comment Share on other sites More sharing options...
martins256 Posted May 27, 2008 Report Share Posted May 27, 2008 (edited) varbūt kas šāds: DELETE FROM table WHERE id > (SELECT id FROM table ORDER BY id LIMIT 5, 1); Vari arī pamēģināt vienkārši, bet nezin vai tas strādās: DELETE FROM table ORDER BY id LIMIT 5,1 Edited May 27, 2008 by martins256 Link to comment Share on other sites More sharing options...
marcis Posted May 27, 2008 Report Share Posted May 27, 2008 Tev obligāti jāizdzēš 7. ieraksts? Nepietiek ar vienkārši nerādīšanu? Link to comment Share on other sites More sharing options...
Grey_Wolf Posted May 27, 2008 Report Share Posted May 27, 2008 (edited) . Vēl, kas tie ieraksti nerādas dabiskā secībā piemēram testēju ierakstot ciparus no 1-7 katru atsevišķi, bet viņi tika parādīti jauktā secībā. tieshi otraadi vinji tika paraadiiti dabiskaa seciibaa , tb. secibaa kaa vinji glabajas DB ... lai izvadiitu kaada noteiktaa kartiibaa izmanto SELECT * FROM tabulis ORDER BY lauks_pec_ka_kartot DESC (vai ASC) Edited May 27, 2008 by Grey_Wolf Link to comment Share on other sites More sharing options...
Aleksejs Posted May 27, 2008 Report Share Posted May 27, 2008 Vai Tev datuma lauka tajā tabulā nav? Ja ir, tad vaicājums varētu būt šitāds: DELETE FROM tabula WHERE datuma_lauks < (SELECT MIN(datuma_lauks) FROM tabula ORDER BY datuma_lauks LIMIT 7 ) Link to comment Share on other sites More sharing options...
Klez Posted May 27, 2008 Report Share Posted May 27, 2008 nav vieglaak raadiit peedeejos 6 ierakstus ? select * from table order by id desc LIMIT 6 vai arii ja gribi dzeest tad var: select * from table order by id desc LIMIT 6 un te dabuu peedeejos 6 id delete from table where id not in (1,2,3,4,5,6) Link to comment Share on other sites More sharing options...
Aleksejs Posted May 27, 2008 Report Share Posted May 27, 2008 Klez, tad jāpiedomā kā garantēt, ka vajadzīgie id vienmēr robežās no 1-6. Sanāk, ka pirms jauno ievieto ar id=1, izpilda UPDATE tabula SET id=id+1. Link to comment Share on other sites More sharing options...
KarlisBa Posted May 27, 2008 Author Report Share Posted May 27, 2008 Der arī, ka nevis izdzēš, bet vienkārši nerāda, bet nu man tā likās parocīgāk, ka vecāko ierakstu izdzēš, lai parādītos jaunākais. :) Link to comment Share on other sites More sharing options...
mounkuls Posted May 27, 2008 Report Share Posted May 27, 2008 Nu ar čatiem neesmu nekāds iesācējs.... Lai gan liela atšķirība no viesu grāmatas, kuru negrib lai piespamo nebūs. Parasti gan es atstāju arī čata vēsturei kādus 100 ierakstus lai ienākot kādam naktī ir ko palasīt. Rādi tik, cik vajag vienā čatā tos ierakstus. Parasti tam izmanto LIMIT un ORDER by laiks. Link to comment Share on other sites More sharing options...
Klez Posted May 28, 2008 Report Share Posted May 28, 2008 Aleksejs, tur bija domaats shitaa: (neskaidri izteicos ...) <?php $all = mysql_query("select * from table order by id desc LIMIT 6"); while ($one = mysql_fetch_row($all)) { $idi[] = $one[0]; } mysql_query("DELETE FROM table WHERE id NOT in(".implode(",", $idi).")"); ?> Link to comment Share on other sites More sharing options...
Aleksejs Posted May 28, 2008 Report Share Posted May 28, 2008 Klez, nu tad jau uzreiz: DELETE FROM table WHERE NOT (id IN ( SELECT id FROM table ORDER BY id DESC LIMIT 6 )) ;) Link to comment Share on other sites More sharing options...
Recommended Posts