Jump to content
php.lv forumi

Iegūt Pirmspēdējo rindu


localhero

Recommended Posts

Nu doma tāda ka ir 2 tabulas: kvitis un darbibas. kvitis - ierakstīta informācija par klientu, tel. num. apraksts utt darbibas - tiek veikti ieraksti par kvitim(pagarinatas, 2. reizi pagarinatas, 3. reizi pagarinats). respektīvi vienai kvītij var būt gan 2 darbības gan 20 un lai kļūdas gadījumā varētu UNDO pēdējo darbību ir vajadzigs noskaidrot kāds ir bijis iepriekšpēdējais stāvoklis.

Bet šķiet kā jau tas bieži gadās tikko iepostē jautājumu atbilde atrodas uzreiz.

$rezultats = mysql_query("SELECT id FROM kvitis WHERE kvits_id = '100'");
$pp_rinda = (mysql_num_rows($rezultats) - 2);
$rezultats = ( SELECT * FROM 'darbibas' WHERE kvits_id = '100' LIMIT '$pp_rinda', 1);

Edited by localhero
Link to comment
Share on other sites

Nu doma tāda ka ir 2 tabulas: kvitis un darbibas. kvitis - ierakstīta informācija par klientu, tel. num. apraksts utt darbibas - tiek veikti ieraksti par kvitim(pagarinatas, 2. reizi pagarinatas, 3. reizi pagarinats). respektīvi vienai kvītij var būt gan 2 darbības gan 20 un lai kļūdas gadījumā varētu UNDO pēdējo darbību ir vajadzigs noskaidrot kāds ir bijis iepriekšpēdējais stāvoklis.

Bet šķiet kā jau tas bieži gadās tikko iepostē jautājumu atbilde atrodas uzreiz.

$rezultats = mysql_query("SELECT id FROM kvitis WHERE kvits_id = '100'");
$pp_rinda = (mysql_num_rows($rezultats) - 2);
$rezultats = ( SELECT * FROM 'darbibas' WHERE kvits_id = '100' LIMIT '$pp_rinda', 1);

 

Skatoties uz šitādiem SQLiem kur nav nekādu ORDER BY klauzu man tomēr rodas jautājums - vai kāds zin, ka kaut kur MYSQL dokos (vai kaut kur citur) ir rakstīts, ka bez ORDER BY rezultāts vienmēr būs vienā noteiktā sakārtojumā?

Fiksi pameklējot googlē neko tādu neizdevās atrast...

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

Skatoties uz šitādiem SQLiem kur nav nekādu ORDER BY klauzu man tomēr rodas jautājums - vai kāds zin, ka kaut kur MYSQL dokos (vai kaut kur citur) ir rakstīts, ka bez ORDER BY rezultāts vienmēr būs vienā noteiktā sakārtojumā?

 

Nav ne rakstīts, ne apgalvots un pavisam noteikti tas tā nav!

Link to comment
Share on other sites

man gan domāts atgriezīs tā kā ir ierakstīts fiziski... Bet vismaz M$SQL ir tāda fīča `clustered index`, tas ir tad, kad ieraksts fiziski tiek ierakstīts starpā - tobiš dati jau tiek fiziski glabāti sasortēti pēc tāda indeksa.

Link to comment
Share on other sites

tiek veikti ieraksti par kvitim(pagarinatas, 2. reizi pagarinatas, 3. reizi pagarinats). respektīvi vienai kvītij var būt gan 2 darbības gan 20 un lai kļūdas gadījumā varētu UNDO pēdējo darbību ir vajadzigs noskaidrot kāds ir bijis iepriekšpēdējais stāvoklis.

 

Sūdīgs arhitekts tabulai... uztaisa papildus lauku $version ... un ar -1 dabū konkrētu rindu, nevis sortē un paņem offsetu. Cits stāsts, ja $version maina cilvēks, teiksim no 1.0 uz 1.75... (versionēšanas sistēmas), bet šeit tu vari zibraukt cauri ar +/- 1 sistēmu.

 

Otrs variants - glabāt vecās versijas citā tabulā un aktuālās īstajā tabulā. Tad paņem vēcako kvīti `pārsviež` uz īsto - vot tev i UNDO operācija... Arī turmpāk selektēties ērtāk - tikai pa īstām kvītīm :)

Tas pat būtu pareizāk!

Link to comment
Share on other sites

Delfins nesapratu tavu $version domu.

Bet runajot par otro variantu ta ari tiek darits. Ir tabula kvits kur glabajas nemainigie dati par kviti(Kvits id, klienta vards uzvards, telefona nummurs, apraksts utt) un ir tabula darbibas kur izmainju gadijuma tiek ievietoti jaunie datumi, summas utt. Vai ir iespejams vel optimalak ?

Link to comment
Share on other sites

×
×
  • Create New...