28. oktober 2005 - 21:47Der er
13 kommentarer og 1 løsning
Opdatering af skema, problemer
Jeg er i gang med at lave et ugeskema, hvor nogle informationer hentes ind. Disse info kan i midlertid ændre sig. Derfor har jeg lavet, så det er muligt at opdatere info:
$count = mysql_num_rows(mysql_query("SELECT id FROM importedweeks WHERE userid = '".$_SESSION['id']."'AND week = '".$_GET['week']."' AND year = '".$_GET['year']."'")); $time = time(); if($count == 1) @mysql_query("DELETE FROM lessons WHERE userid = '".$userid."' AND week = '".$week."' AND year = '".$year."'"); for($i = 1; $i < 6; $i++) { //indeholder ugedage 1 for mandag - 5 for fredag for($u = 0; $u < 9; $u++ ) { //indeholder modulerne på de enkelte dage $module = $u+1; @mysql_query("INSERT INTO lessons(id, userid, username, lesson, teacher, room, module, day, week, year) VALUES('', '".$userid."', '".$username."', '".$skema[$i][$u]."', '".$laerer[$i][$u]."', '".$lokale[$i][$u]."', '".$module."', '".$i."', '".$week."', '".$year."')");
} } if($count == 1) @mysql_query("DELETE FROM importedweeks WHERE userid = '".$userid."' AND week = '".$week."' AND year = '".$year."'"); //importedweeks bruges til at holde styr over, hvilke uger de forskellige brugere har hentet. @mysql_query("INSERT INTO importedweeks(id, userid, username, week, year, timestamp) VALUES('', '".$userid."', '".$username."', '".$week."', '".$year."', '".$time."')");
Men samtidig kan informationerne også være forkerte eller mangelfulde. Derfor skal der laves mulighed for at ændre info manuelt. Fint nok. Problemet opstår når man har indtastet noget info manuelt, og derefter opdaterer skemaet. Så forsvinder de ting man manuelt har indtastet. Og eftersom informationerne ændres ofte, er det irriterende at skulle indtaste disse forskeliige ting manuelt, hver gang man har opdateret.
Hvordan får jeg lavet så manuelle info gemmes mens de hentede bliver opdateret?
ja det gør jeg da.. Jeg lavet en del forsøg med den, men det kan jeg heller ikke få til at virke.. Jeg kan lige prøve at genskabe et eksempel på det jeg har prøvet.. Det kunne jo være jeg laver en helt grundlæggende fejl:)
$count = mysql_num_rows(mysql_query("SELECT id FROM importedweeks WHERE userid = '".$_SESSION['id']."'AND week = '".$_GET['week']."' AND year = '".$_GET['year']."'")); $time = time();
for($i = 1; $i < 6; $i++) { for($u = 0; $u < 9; $u++ ) { $module = $u+1; if($count == 0) { @mysql_query("INSERT INTO lessons(id, userid, username, lesson, teacher, room, module, day, week, year) VALUES('', '".$userid."', '".$username."', '".$skema[$i][$u]."', '".$laerer[$i][$u]."', '".$lokale[$i][$u]."', '".$module."', '".$i."', '".$week."', '".$year."')"); } elseif($count == 1) { @mysql_query("UPDATE lessons SET lesson = '".$skema[$i][$u]."', teacher = '".$laerer[$i][$u]."', room = '".$lokale[$i][$u]."' WHERE userid = '".$userid."' AND week = '".$week."' AND year = '".$year."' AND module = '".$u."' AND day = '".$i."'"); } } }
if($count == 1) @mysql_query("UPDATE importedweeks SET timestamp = '".$time."' WHERE userid = '".$userid."' AND week = '".$week."' AND year = '".$year."'");
Det virker fint at hente skemaet første gang. Så laver jeg en manuel ændring (fx ændre modul 3). Opdaterer igen, nu er modul 2 pludselig slettet, og modul 4-5-6-7-8-9 har forrykket sig til 3-4-5-6-7-8.
$week = mysql_escape_string($_GET["week"]); $year = mysql_escape_string($_GET["year"]); $query = mysql_query("SELECT * FROM importedweeks WHERE userid = '".$_SESSION['id']."' AND week = '".$week."' AND year = '".$year."' LIMIT 1"); if(mysql_num_rows($query)>0) { //Her skal vi så printe en masse input felter. //Og også et felt med row-id (evt i hidden field) }
Når brugeren så trykker REDIGER/OPDATER, smider vi alle data tilbage og bruger UPDATE importedweeks SET data1 = $data1, data2 = $data2 osv... WHERE ID = $hiddenID
Jeg tror måske jeg har lidt svært ved helt at forstå hvad du forsøger! Henter du 5*8 rækker ud fra en DB? (altså 40 rækker) Og dem skal du kunne redigere?
Det første er rigtigt. Der er 5 dage med faktisk 9 moduler (min fejl). Jeg bruger importedweeks til at holde styr på, hvilke uger de enkelte brugere har hentet og hvornår. I lessons gemmes selve værdierne. Men har du et bedre forslag til hvordan man kan opbygge en fornuftig database struktur, er jeg også frisk på det:)
Ikke lige i dag! Jeg må kigge videre på det i morgen! Måske vi kan tage det via msn: jakobdo (at) hotmail (dot) com Ville gerne prøve at se lidt live data, det får nogle gange 5-øren til at falde! :o) Sengetid.
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.