The following files exists in this folder. Click to view.
edit.php199 lines UTF-8 Unix (LF) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
<?php
// ===========================================================================================
//
// edit.php
//
// Description:
//
// Author: Johan Hällgren
// Comment: Här har jag valt att sköta bägge tabellerna från samma fil och även ta bort i samma fil.
// Naturligtvis går det att dela upp detta i flera filer och sedan med länkar gå till respektive fil.
// -------------------------------------------------------------------------------------------
//
// Requires and includes
//
require_once('dbConn.php');
require_once('common.php');
require_once('functions.php');
// -------------------------------------------------------------------------------------------
//
// Take care of GET-variables
//
$action = (isset($_GET['action']) && $_GET['action']!="") ? $_GET['action'] : "";
$table = (isset($_GET['table']) && $_GET['table']!="") ? $_GET['table'] : "";
$id = (isset($_GET['id']) && $_GET['id']!="") ? $_GET['id'] : "";
// -------------------------------------------------------------------------------------------
//
// Variables for this page
//
$mess = isset($mess) ? "<p class=\"mess\">".$mess."</p>" : "";
// -------------------------------------------------------------------------------------------
//
// First delete a post if we recieve informaton about
//
// Om någon post skall tas bort så gör vi detta först innan
// resten av sidan processas.
//
// Att ta bort från Car kan aldrig bli problem
// Att ta bort Person som äger Car går inte! Här måste vi bestämma hur detta skall göras,
// skall en borttagen person tappa kopplingen till bilar, alltså alla bilar som X äger sätts
// till null innan personen tas bort eller skall även bilarna falla?
//
if($action == "delete"){
if($table == "car"){
$sql = "DELETE FROM car WHERE carId = :carId;";
$prm = array(
'carId' => $id);
} else if ($table == "person"){
$sql = "DELETE FROM person WHERE personId = :personId;";
$prm = array(
'personId' => $id);
}
# kör sql
$stmt = $pdo->prepare($sql);
$stmt->execute($prm);
if($stmt->rowCount() == 0){
$mess = "Inga rader togs bort....";
} else {
$mess = "Posten med id " .$id. " togs bort.";
}
}
// -------------------------------------------------------------------------------------------
//
// Create the content
// Car form
//
$owner = <<<EOD
<select for=personId name=personId>
<option value='0' selected>No owner</option>
EOD;
$sql = "SELECT * FROM person;";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $row) {
$owner .= "\n <option value='{$row['personId']}'>{$row['firstName']} {$row['familyName']} </option>";
}
$owner .= "</select>";
// -------------------------------------------------------------------------------------------
//
// Create the content
// First box, this is the one with the form to select the table
//
$carSelected = isset($_GET['table']) && $_GET['table']=="car" ? "selected" : "";
$personSelected = isset($_GET['table']) && $_GET['table']=="person" ? "selected" : "";
$formRadioButton = <<< EOD
<script>
function submitForm() {
document.myform.submit();
}
</script>
<form method="GET" action="?" name="myform">
<fieldset>
<ol>
<li>
<label for="table">Välj tabell</label>
<select for=table name=table id="mySelect" onchange="submitForm()">
<option value='' selected>no table</option>
<option value='car' {$carSelected}>Car</option>
<option value='person' {$personSelected}>Person</option>
</select>
</li>
</ol>
</fieldset>
</form>
<p id="demo"></p>
EOD;
// -------------------------------------------------------------------------------------------
//
// Create the content
// Print the whole table with links for edit and delete.
//
$tableName = (isset($_GET['table']) && $_GET['table']!="") ? $_GET['table'] : "";
$table = ""; // Skapar tom variabel för att slippa error när ingen tabell skall ritas ut
$arr="";
if($tableName !=""){
switch ($tableName) {
case "car":
$headline = "Lista alla bilar";
$arr = array("carId", "personId", "registrationNr", "make", "model", "year", "price");
$sql = "SELECT * FROM car;";
break;
case "person":
$headline = "Lista alla personer";
$arr = array("personId", "firstName", "familyName", "birthDate", "hasLicence");
$sql = "SELECT * FROM person;";
break;
default:
break;
}
$table = createTableFromSqlEdit($arr, $sql, $tableName);
}
// -----------------------------------------------------------------------------
//
// Sätt aside och content
//
$aside2 = "";
$content = $aside2 == "" ? "content_full" : "content";
// ----------------------------------------------------------------------
//
// Content
//
$html = <<< EOD
<article class="{$content}">
<h1>Uppdatera och ta bort post</h1>
{$mess}
<section class="box">
<h2>Litet formulär</h2>
<p>{$formRadioButton}</p>
</section>
<section class="box">
<h2>{$tableName}</h2>
<p>{$table}</p>
<p>Ta bort en post med "x". Editlänken funkar inte för tillfället.</p>
</section>
</article>
EOD;
// -----------------------------------------------------------------------------
//
// Create the html-page
//
$title = "Car";
$charset = "UTF-8";
$style = "stilmall.css";
// Här sköts sidbygget och utskriften.
include_once("page.php");
?>