Avatar billede akki Nybegynder
30. juni 2005 - 13:59 Der er 7 kommentarer

Løsninger til et lille problem

Jeg skal havde lavet en form for klasse liste,hvor man skal kunne krydse folk af om de har været der eller ikke, eller kom for sent, dette skal så skrives ind i en database med dags dato.
Er der nogen der har en løsning på dette.
Kunne være smart hvis den var dynamsisk og kunne hente navne ud fra en tabel, og skrive noget ind i en anden, men kan ikke lige se hvordan man skal kunne løse det.

Skal bruge dette i mit job som frivilig håndbold træner.
Avatar billede jaw Nybegynder
30. juni 2005 - 17:03 #1
Lyder ikke synderligt avanceret umiddelbart, men hvad søger du helt præcist? Ideer til hvordan det kan gøres, et allerede-kodet script, oder noget helt 3. ?

Min umiddelbare idé ville være at lave 2 tabeller, én med alle eleverne hvor hver elev har sit eget elevnr. I den anden tabel, ville jeg så lave de muligheder der er for hver elev. Altså et dato-felt, for-sent-felt, udeblev-felt etc., som så hver kan have f.eks. værdierne 0 og 1. Forståeligt?
Avatar billede akki Nybegynder
30. juni 2005 - 18:58 #2
hmm ved ikke lige.. ville gerne lidt havde noget som løsning.

eleverne skal ligge i en tabel, men jeg vil så gerne havde at der bliver lavet en lang liste ala:

elev 1    [for sent] [til tiden] [syg] [noget andet]
elev 2    [for sent] [til tiden] [syg] [noget andet]
elev 3    [for sent] [til tiden] [syg] [noget andet]
elev 4    [for sent] [til tiden] [syg] [noget andet]

Herimellem [] skal jeg kunne krydse alle af, og tilsidst skrive en dato, derefter skal det hele smides ind i databasen
meningen er at jeg så skal kunne trække en elev ud, og se hvor tit han har været der, kom for sent osv.
Avatar billede mr-xmas Nybegynder
30. juni 2005 - 23:59 #3
skal det være så du kan klikke på feks hvis en hedder peter persen og så kommer den en skema med ham hvor der står hvad for nogle gange han er syg eller var der eller noget andet?
Avatar billede akki Nybegynder
01. juli 2005 - 08:37 #4
Ja.. det skal være muligt at klikke på personens navn, også få vist et skema hvor i man kan se hvornår personen har været der, kommet forsent var syg eller bare var der.
Avatar billede mr-xmas Nybegynder
01. juli 2005 - 19:31 #5
det skal da laves i php og mysql ikke?
Avatar billede jaw Nybegynder
01. juli 2005 - 21:13 #6
Så har jeg brygget noget sammen til dig. Det er ikke perfekt, men det er en start du kan bygge lidt på. Der skal jo også være noget til dig selv at bygge på...

Først og fremmest, skal du oprette 2 tabeller som herunder:

CREATE TABLE `elevmoede` (
  `elevID` int(11) NOT NULL default '0',
  `tilTiden` int(11) NOT NULL default '0',
  `forSent` int(11) NOT NULL default '0',
  `syg` int(11) NOT NULL default '0',
  `dato` varchar(8) NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE `elever` (
  `elevID` int(11) NOT NULL auto_increment,
  `elevNavn` varchar(32) NOT NULL default '',
  UNIQUE KEY `elevID` (`elevID`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;

I tabellen "elever" indsætter du alle de elever du vil behandle.

Derefter opretter du følgende 3 filer:
<--- INDEX.PHP --->
<?

mysql_connect("localhost", "", "");
mysql_select_db("eksperten");

$q = mysql_query("SELECT * FROM elever ORDER BY elevID ASC");

echo "
        <form action='insert.php' method='post'>
            <table width='700'>
                <tr>
                    <td width='55%'><b>Elevnavn</b></td>
                    <td width='15%'><b>For sent</b></td>
                    <td width='15%'><b>Til tiden</b></td>
                    <td width='15%'><b>Syg</b></td>
                </tr>
                <tr>
                    <td width='55%'>Dato</td>
                    <td colspan=3><input type='text' name='date'></td>
                </tr>";
while($row = mysql_fetch_array($q)) {
    echo"
        <tr>
            <td width='55%'><a href='show.php?id=".$row['elevID']."'>".$row['elevNavn']."</a></td>
            <td width='15%'><input type='radio' name='".$row['elevID']."' value='1'></td>
            <td width='15%'><input type='radio' name='".$row['elevID']."' value='2'></td>
            <td width='15%'><input type='radio' name='".$row['elevID']."' value='3'></td>
        </tr>
    ";
}

echo"
        <tr>
            <td colspan=4><input type='submit' name='send' value='Send'>
        </tr>
</table>
</form>";

?>

<--- INSERT.PHP --->
<?

mysql_connect("localhost", "", "");
mysql_select_db("eksperten");

$q = mysql_query("SELECT * FROM elever ORDER BY elevID ASC");

while($row = mysql_fetch_array($q)) {
    $forSent = ($_POST[$row['elevID']] == 1) ? 1 : 0;
    $tilTiden = ($_POST[$row['elevID']] == 2) ? 1 : 0;
    $syg = ($_POST[$row['elevID']] == 3) ? 1 : 0;
    mysql_query("INSERT INTO elevMoede (elevID, tilTiden, forSent, syg, dato) VALUES ('".$row['elevID']."','".$tilTiden."','".$forSent."','".$syg."','".$_POST['date']."')");
}

header("Location: index.php");

?>

<--- SHOW.PHP --->
<?

mysql_connect("localhost", "", "");
mysql_select_db("eksperten");

$q = mysql_query("SELECT * FROM elevMoede WHERE elevID = ".$_GET['id']." ORDER BY dato DESC");
while($row = mysql_fetch_array($q)) {
    if($row['tilTiden'] == 1) $tekst = "Til tiden";
    elseif($row['forSent'] == 1) $tekst = "For sent";
    elseif($row['syg'] == 1) $tekst = "Syg";
    else $tekst = "Fejl!";
    echo"
        <table width='700'>
            <tr>
                <td width='55%'>".$row['dato']."</td>
                <td width='15%'>".$tekst."</td>
            </tr>
        </table>
    ";
}

?>

Håber det kan bruges - good luck !
Avatar billede jaw Nybegynder
06. juli 2005 - 10:59 #7
Hva så akki, kommet videre eller hvad?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester