Åtgärder

CS enkelt prov rätta

Från Skolbok

Nu har du sett hur man gör ett simpelt prov, nu är det dags att kunna rätta det också. Då får vi sätta upp likadana kontroller:

De fält som behöver kunna redigeras och uppdateras är:

ELEV_ID 
PROVKOMMENTAR
RESULTAT

Alla andra uppgifter i provet skall bara visas upp på sidan, vilket gör att det går hyfsat fort att rätta provet.

Det första vi måste göra är att välja rätt prov. Det sker i det här fallet med en flervalsruta. Det finns säkert bättre sätt att göra det på, men knappast enklare.

Nackdelen med detta är att om du har mängder med prov inlagda i databasen får du hundratals poster att visa upp och valen går långt under skärmkanten. Då får du begränsa sökningen ändå mer (jag skall visa hur det går till, oroa dig inte).


 <?php
session_start();//Behåll inloggningsbiljetten
//Filnamn  simpeltprov_raetta.php

//Olika viktiga variabler
$host="localhost"; // Host , på en privat dator duger oftast localhost
$username="root"; // Mysql användarnamn, antagligen root
$password="password1"; // Lösenord till root, kan t.ex. vara password1
$db_name="skolan"; // Databasens namn

// Anslut till MySQL servern och välj rätt tabell
mysql_connect("$host", "$username", "$password")or die("Kan inte ansluta till databasen");
mysql_select_db("$db_name")or die("Kan inte välja rätt databas.");

//Har vi fått in ett prov id?
 if($_POST['formSubmit']== "Spara" || $_POST['formSubmit']== "OK" )
{
$provid = $_POST['provid'];
}
else
{
$provid = 0;
}

//Har man tryckt på knappen?
if($_POST['formSubmit'] == "Spara")
{
$valtprov = $_POST['valtprov'];
$elev_id=$_POST['elev_id'];
$provkommentar=$_POST['provkommentar'];
$resultat=$_POST['resultat'];

//Uppdatera databasen
  if ($provid > 0)
  {
  $datumraettat=date('Y-m-d H:i:s');
  $sqlupp = "UPDATE simpeltprov set ELEV_ID=".$elev_id.", PROVKOMMENTAR='".$provkommentar."', RESULTAT='".$resultat."', DATUM_RATTAT='".$datumraettat."' where ID = ".$provid;
  mysql_query($sqlupp) or die(mysql_error());

  }
}


//Ta fram informationen från databasen
$sqlres = "SELECT * FROM simpeltprov where id = ".$provid;
$result = mysql_query ($sqlres) or die(mysql_error());
while($row = mysql_fetch_array($result))
 {
$elev_id = $row['ELEV_ID'];
$elev_fnamn  = $row['F_NAMN'];
$elev_enamn = $row['E_NAMN'];
$elev_klass = $row['KLASS'];
$elev_hemligt = $row['HEMLIGTORD'];
$provnamn=$row['PROVNAMN'];
$facit=$row['FACIT'];
$elevsvar=$row['ELEVSVAR'];
$provkommentar=$row['PROVKOMMENTAR'];
$resultat=$row['RESULTAT'];
$datumgjort=$row['DATUM_GJORT'];
$datumrattat=$row['DATUM_RATTAT'];
 }


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="sv-SE">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Rättning av enkelt prov </title>
</head>

<body>
<form name="formraetta" method="post" action="simpeltprov_raetta.php">

<?php
//vi behöver ett sätt att välja ut ett prov att rätta på
//Men vi måste bibehålla det valda provets id-nummer
echo "<select name=provid>";
if ($provid==0){
echo "<option value=0>Välj prov</option>";
}
else
{
echo "<option value=".$provid.">Prov valt, id:".$provid."</option>";
}

$querylistbox="SELECT * FROM simpeltprov ORDER BY PROVNAMN, KLASS, E_NAMN";
$result = mysql_query ($querylistbox) or die(mysql_error());

while($row=mysql_fetch_array($result))
{//tabellraden sparas i $row
echo "<option value=".$row['ID'].">".$row['PROVNAMN']."-".$row['E_NAMN']." ".$row['F_NAMN']."-".$row['KLASS'].":".$row['DATUM_GJORT']."/".$row['DATUM_RATTAT']."</option>";
// Genom att stega ner genom tabellen visas alla proven upp 
}
echo "</select>";// Avsluta boxen

?>
<input type="submit" name="formSubmit" value="OK" /><br>
<br>
<b>Elev ID-nummer</b><br>
<input name="elev_id" type="text" value= <?=$elev_id;?>><br>
<i>Ändra bara om du vet elevens ID.</i><br>
<br>
<b>Prov:</b><?=$provnamn;?><br>
<b>Elev:</b><?=$elev_fnamn;?> <?=$elev_enamn;?> <b>Klass:</b><?=$elev_klass;?><br>
  <b>(Hemligt ord:</b><?=$elev_hemligt;?>)<br>
<b>Inlämnat:</b><?=$datumgjort;?><br><b>Rättat:</b><?=$datumrattat;?><br>
<hr>
<b>Provkommentar:</b><br>
<textarea name="provkommentar" rows="10" cols="76"><?=$provkommentar;?> </textarea><br>

<b>Resultat</b><br>
<input name="resultat" type="text" value= <?=$resultat;?>><br>

<br>
<input type="submit" name="formSubmit" value="Spara" />
<table>
<tr>
<td valign="top">
<b>Elevsvar:</b><br>
<?=nl2br($elevsvar);?>
</td><td valign="top">
<b>Facit:</b><br>
<?=nl2br($facit);?>
</td>
</tr>
</table>

</form>

</body>
</html>