HEJ, ImySQLi har jeg en tabel (UGETABEL), som indeholder data for uge 39. 40, 41, 42 , 43 .
Nu skriver vi uge 42 og har derfor ikke brug for dat fra uge 39 (uge 40 skal først slettes når uge 43 bliver aktiv, som uge 40 slettes ved aktivering af uge 44.)
Jeg tænker på om det er muligt at:
PSEUDO-kode:
Åbne base; hent alle records hvor UGE >= 39, hvis antal records ikke lig 0 da { slet alle records hvor uge >= 39; hvis result = ok { det gik ! } else { det gik ikke! } }
// Derefter check antal records hvor uge er mindre eller lig 39.
$sql="SELECT * FROM DATABASE WHERE UGE >= 39"
if ($result=mysqli_query($con,$sql)) { $rowcount = mysqli_num_rows($result); if ($rowcount != 0) // rowcount er ikke 0 { // sql to delete a record $sql = "DELETE FROM MyGuests WHERE UGE >= 39"; if ($conn->query($sql) === TRUE) { echo "Record deleted successfully"; } else { echo "Error deleting record: " . $conn->error; } } } // // herfra vil jeg så trække data for uge 40 , 41 --->
$sql="SELECT * FROM DATABASE"; .. osv
Det jeg reelt spøger om, er om det er muligt at leve flere $SQL kommandoer ( eks flere "SELECTER" som i dette eksempel ) i samme script. Eller skal det laves som selvstændige, kaldbare PHP-scripts ? Eller hvordan "resetter" jeg base - pointeren.
De forsøg jeg har lavet, virker ikke, men det kan være syntaksfejl fra min side..
Hvis du skal slette rækker før uge 39, skal det være: WHERE UGE <= 39 Du har vendt ulighedstegnet forkert.
Du behøver ikke spørge om der er rækker, der opfylder betingelsen, før du laver en DELETE FROM. Det er ikke en fejl at slette rækker der ikke er der - hvis man kan sige det på den måde.
Men der er noget galt, når du kun har et ugenummer - for ved årsskiftet startet vi forfra med uge 1, og hvordan skelner du så mellem hvilket år ugenummeret hører til?
DU har ret. Den skrevne tekst er taget fra 2 forskellige databaser (og det er en grandiøs fejl fra min side- jeg burde have set det - enig. og større end tegnet burde være vendt - osse her - enig. Men fordi jeg havde bøvlet med tingene i flere timer var jeg træt. Men fejlen er der og min træthed undskylder det ikke, men det er en forklaring.
I den "rigtige udgave" er tingene imidlertid korrekte. Samme tabel samme parametre.
Igen trætheden, som spillede mig et puds. Jeg satte mig i min bløde læ(n/s)estol og gennemtænkte problemet. Fandt frem til, som du også så rigtigt pointerer, at det med årsskift og ugenumre ikke var løst i min "løsning" (året manglede), så det måtte ny-tænkning til. Det brugte jeg det meste af aftenen (og for den sags skyld osse 1 1/2 time om natten) til at gennemtænke. Noget er løst (bl. a mySQLi tabellen er opdateret med kolonnen YEAR) Den endelige løsning er ikke kommet endnu, men jeg læser i øjeblikket om PHP date() strukturen versus stringtime (evt kombineret) og arbejder videre derfra. Jeg føler, at det kan være en løsning.
Ang. sletningen af uge 39 (og derfra) betyder ikke så meget lige nu (udover at basen bliver det større), og at det kan løses senere. Evt kan jeg når jeg skal skabe næste uge (dvs. efterfølgende uge i HTML SELECTEN) lave et PHP- script som tester om UGE XX (her uge 39) er i basen og hvis JA sletter disse poster.
Enten som du skrev to felter hhv uge og år. Eller kombinere dem til fx 201841 i indeværende uge, men huske at uge 1-9 skal have foranstillede nuller: 201801
#6 Det er veldefineret hvornår der er, og hvornår der ikke er, en uge 53. Der vil aldrig være en uge 53 der er lig med en uge 1 i det efterfølgende år.
1000 tak for kommentarerne og de gode råd. Jeg arbejder lige nu med at finde ud af hvordan jeg skal gøre tabellen om til "et flydende vidue", sådan at forstå, at aktuelle uge + 2 uger frem (ialt 3 uger) vil være den aktive/visbare dele af tabellen. Men af hensyn til administrationen (læs: regnskabet) skal der være et bagudrettet "slip" på mindst 2 uger bagud ( hvis vi skriver uge 44 nu, så vises uge44, uge45 og uge46 i tabellen, vil tabellen starte med uge 42). Når ugen44 går over i uge 45, kan jeg så slette uge 42, men det er ikke så kritisk (i hvertfald ikke lige nu, hvor årsskifte problematikken begynder at blive aktuel. (altså har året 52 eller 53 uger, og hvad skal vises i så fald. Eks: er det uge 51 og året har 53 uger skal uge51-uge 53 vises. Har året 52 uger skal uge51, uge 52 og UGE 1 (næste år) vises. Uge 52 er en kombination af ovenstående .
Jeg har en egendefineret algoritme, den fungerer, men er tung, klodset, så lige nu arbejder jeg med PHP funktionerne date(), stringtodate() og datetime() (muligvis nogen starter med stort D eller S // syntaksen ) for at finde en smartere metode omkring årsskiftet. De foreløbige eksperimenter omkrin de 3 ovennævnte funktioner viser det jeg forventer, ved rigtigt input.
Så når årsskiftet er løst (PS: Godt Nyår !), går jeg i gang med UGESLETNINGEN.
Den med UGE -ÅR til Integer er taget ad notam. Tak til RUne ("professor-kollegaen").
KR
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.