Web-Tor Medlem sedan nov. 2000 13 890 inlägg Frågan 8 okt. 2001 14:39 #1 Hejsan vänner!
Jag behöver hjälp med en sida som ser ut enligt följande:
Användaren matar in start och slutdatum för ett projekt.
Ett exempel:
Start = 102 (vecka 2 år 2001)
Slut = 116 (vecka 16 år 2001)
Nu skall det skapar rader i en MySQL-databas. I databasen har jag en kolumn som heter 'Week' och där skall följande värden in:
102, 104, 106, 108, 110, 112, 114, 115, 116
Varje värde skall matas in på en egen rad. Lägg märke till att det bara är jämna nummer som matas in, förutom i slutet av projektet då även en ojämn vecka skall in.
Kan man få lite hjälp på traven kanske
S SPiN Medlem sedan mars 2000 7 896 inlägg Kanske nåt sånt här?
<?php
$startar = "102";
$slutar = "116";
$vStart = (int)$startar;
$vSlut = (int)$slutar;
for($i = $vStart; $i < ($vSlut + 1); $i + 2) {
if($i == $vSlut) {
mysql_query("INSERT INTO tbl (Week) VALUES(" . ($i - 1) . ")");
}
mysql_query("INSERT INTO tbl (Week) VALUES($i)");
}
?>
Kanske är nåt litet fel, men jag är lite trött... Får skylla på det isf
spango Medlem sedan juni 2000 8 205 inlägg Så här skulle jag ha sagt:
$start = 102;
$end = 106;
for($i = $start; $i <= $end; $i++)
if($i % 2 == 0 || $i == $end)
mysql_query("INSERT INTO foo VALUES ($i)");
Borde väl funka, eller hur?
S SPiN Medlem sedan mars 2000 7 896 inlägg Men då får man inte in den näst sista ojämna veckan, annars skulle det ha funkat...
Web-Tor Medlem sedan nov. 2000 13 890 inlägg Jag ändrade koden lite och vi är på god väg men det är fortfarande ett problem kvar. Det finns ju bara 52 veckor på ett år.
<?php
$startar = "102";
$slutar = "116";
$vStart = (int)$startar;
$vSlut = (int)$slutar;
for($i = $vStart; $i < ($vSlut + 1); [b][red]$i+=2[/b]) {
if($i == $vSlut) {
mysql_query("INSERT INTO tbl (Week) VALUES(" . ($i - 1) . ")");
}
mysql_query("INSERT INTO tbl (Week) VALUES($i)");
}
?>
spango Medlem sedan juni 2000 8 205 inlägg Och vad ska hända efter vecka 52, då?
näst sista ojämna veckan
Var det inte sista ojämna veckan som skulle med?
Web-Tor Medlem sedan nov. 2000 13 890 inlägg
Var det inte sista ojämna veckan som skulle med?
Nu har jag fått kontraorder: Det är de två sista ojämna veckorna som skall med.
Om vi tar det tidigare exemplet:
Start = 102 (vecka 2 år 2001)
Slut = 116 (vecka 16 år 2001)
Detta skall generera följande veckor:
102, 104, 106, 108, 110, 112, 113, 114, 115, 116
Och vad ska hända efter vecka 52, då?
Efter vecka 52 så skall den fortsätta med vecka 02 nästa år.
Skulle man mata in:
Start = 146 (vecka 46 år 2001)
Slut = 206 (vecka 6 år 2002)
Så skall följande veckor skapas:
146, 148, 150, 152, 202, 203, 204, 205, 206
Web-Tor Medlem sedan nov. 2000 13 890 inlägg Tänkte bara säga att jag löst det.
Ni kan sluta grubbla nu.
Tyvärr så blev det en så fruktansvärt ful lösning så jag ids inte lägga in koden här.
S SPiN Medlem sedan mars 2000 7 896 inlägg
Var det inte sista ojämna veckan som skulle med?
Jo, det var det jag menade... Näst sista veckan alltså, var lite trött...