User Tools

Site Tools


simple_crud

list-persons.html

<html>
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>

<div id='liclass'>
</div>

<?php
require('db.php');
$dbh = get_db();
$person_list = 
  $dbh->query('select id, fullname, birthdate, country_code from person')
      ->fetch_all(MYSQLI_ASSOC);	  
	  
// echo format_html_table($person_list, 'persontable');	  
?>
<div id="person_list">
<?php
foreach ($person_list as $person) {
  printf (
  "<li><a href='update_person.php?id=%d'>%s</a>, %s, %s </li>\n", 
             $person['id'],
			 $person['fullname'],
			 $person['birthdate'],
			 $person['country_code']
			 );			 
}
	
?>
</div>
<html>

update_person.php

<?php
require('db.php');
$dbh = get_db();

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$id = $_GET['id'];
$country_list = 
  $dbh->query('select Code, Name from country')
      ->fetch_all(MYSQLI_ASSOC);	  

$sth = $dbh->prepare(
'select fullname, birthdate, country_code from person where id = ?'
);

$id = $_GET['id'];
$sth->bind_param("d", $id);
$sth->execute();
$sth->bind_result($fullname, $birthdate, $country_code);
$sth->fetch();

?>
<html>
<form 
  name="personform" 
  id="personform"
  action="<?php echo $_SERVER['PHP_SELF'];?>"
  method="POST">
  
  <input name="id" id="id" type="hidden" value = <?php echo $id?>/>
  <p>Fullname: <input name="fullname" id="fullname" type="text" size="30"
    value="<?php echo$fullname?>"></p> 
  <p>Birthdate: <input name="birthdate" id="birthdate" type="text" size="30"
    value=<?php echo $birthdate?>      
    ></p>  
  <p>Country:   
  <select name="country_code" id="country_code"   
  >
  <?php
  foreach ($country_list as $row) {
	if ($row['Code'] == $country_code) {
		$selected = 'selected';
	} else { $selected = ''; }
    printf('<option value="%s" %s>%s</option>', 
	        $row['Code'], $selected, $row['Name'] );
  }
  ?>
  </select>
  </p>     
  <p><input type="submit" value="Save"></p>
  
</form>  

<?php
}
elseif ($_SERVER['REQUEST_METHOD'] == 'POST') {
?>
<meta http-equiv="refresh" content="0; url=list-persons.php" />
<?php	
$sth = $dbh->prepare(
"update person 
  set fullname = ?,
   birthdate = ?,
   country_code = ? 
  where id = ?"
);	

$fullname = $_POST['fullname'];
$birthdate = $_POST['birthdate'];
$country_code = $_POST['country_code'];
$id = $_POST['id'];
$sth->bind_param("sssd", $fullname, $birthdate, $country_code, $id);
$sth->execute();


}

Update oder Insert

write_person.php

<?php
require('db.php');
$dbh = get_db();

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $country_list = 
    $dbh->query('select Code, Name from country')
      ->fetch_all(MYSQLI_ASSOC);	  

  	if (isset($_GET['id'])) {
	  $id = $_GET['id'];    
      $sth = $dbh->prepare(
      'select fullname, birthdate, country_code from person where id = ?'
      );


      $sth->bind_param("d", $id);
      $sth->execute();
      $sth->bind_result($fullname, $birthdate, $country_code);
      $sth->fetch();
    } else {
		$id = '';
		$fullname = '';
		$birthdate = '';
		$country_code = '';
	}
?>
<html>
<form 
  name="personform" 
  id="personform"
  action="<?php echo $_SERVER['PHP_SELF'];?>"
  method="POST">
  
  <input name="id" id="id" type="hidden" value ="<?php echo $id?>"/>
  <p>Fullname: <input name="fullname" id="fullname" type="text" size="30"
    value="<?php echo $fullname?>"></p> 
  <p>Birthdate: <input name="birthdate" id="birthdate" type="text" size="30"
    value="<?php echo $birthdate?>"      
    ></p>  
  <p>Country:   
  <select name="country_code" id="country_code"   
  >
  <?php
  foreach ($country_list as $row) {
	if ($row['Code'] == $country_code) {
		$selected = 'selected';
	} else { $selected = ''; }
    printf('<option value="%s" %s>%s</option>', 
	        $row['Code'], $selected, $row['Name'] );
  }
  ?>
  </select>
  </p>     
  <p><input type="submit" value="Save"></p>
  
</form>  

<?php
}
elseif ($_SERVER['REQUEST_METHOD'] == 'POST') {
?>
<meta http-equiv="refresh" content="1; url=list-persons.php" />
<?php

$fullname = $_POST['fullname'];
$birthdate = $_POST['birthdate'];
$country_code = $_POST['country_code'];

if (isset($_POST['id']) and  $_POST['id'] != '' ) {
  echo "updating<br>\n";
  $id = $_POST['id'];
  $sth = $dbh->prepare(
  "update person 
    set fullname = ?,
        birthdate = ?,
        country_code = ? 
   where id = ?"
  );	
  $sth->bind_param("sssd", $fullname, $birthdate, $country_code, $id);
} else {
  echo "inserting<br>\n";
  $sth = $dbh->prepare(
    "insert into person 
      (fullname, 
       birthdate, 
       country_code) 
     values (?, ?, ?)"
  );	
  $sth->bind_param("sss", $fullname, $birthdate, $country_code);
}  
$sth->execute();

}

list-persons.php

<html>
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<pre>
<?php
require('db.php');

// if (

// $path = preg_split("/\/+/", $_SERVER['PATH_INFO'].'/');

// var_dump($_SERVER);
// var_dump($path);

$dbh = get_db();
$person_list = 
  $dbh->query('select id, fullname, birthdate, country_code from person')
      ->fetch_all(MYSQLI_ASSOC);	  
	  
// echo format_html_table($person_list, 'persontable');	  
?>
</pre>
<div id="person_list">
<?php
foreach ($person_list as $person) {
  printf (
  "<li><a href='write_person.php?id=%d'>%s</a>, %s, %s </li>\n", 
             $person['id'],
			 $person['fullname'],
			 $person['birthdate'],
			 $person['country_code']
			 );			 
}
	
?>
</div>
<br>
<a href='write_person.php'>Add new person</a>
<html>

Single Page CRUD

noch sehr unansehnlich

<?php
require('db.php');
$dbh = get_db();

if (isset($_SERVER['PATH_INFO'])) {
    $path = explode('/', $_SERVER['PATH_INFO']);
} else {
	$path = array();
}	

$path = array_filter($path);
/*
echo "<pre>";
var_dump($path);
echo "</pre>";
*/

if (empty($path)) {	
  list_persons($dbh);
  exit;
}
elseif ($_SERVER['REQUEST_METHOD'] == 'GET' && $path[1] == 'write') {
    $country_list = 
    $dbh->query('select Code, Name from country')
      ->fetch_all(MYSQLI_ASSOC);	  

  	if ($path[2] == 'id' and isset($path[3])) {	  
	  $id = $path[3];    	  
	  echo "<h2>Update Person $id</h2>\n";
      $sth = $dbh->prepare(
      'select id, fullname, birthdate, country_code from person where id = ?'
      );

      $sth->bind_param("d", $id);
      $sth->execute();
      $sth->bind_result($read_id, $fullname, $birthdate, $country_code);
      $sth->fetch();	  
	  if ($read_id != $id) {
		  ?>
		  <meta http-equiv="refresh" content="2; url=persons.php" />
          <h2>unknown id, go away</h2>		  
          <?php		  
		  exit();
	    }
    } else {
		echo "<h2>Insert Person</h2>\n";
		$id = '';
		$fullname = '';
		$birthdate = '';
		$country_code = '';
	}
?>
<html>
<form 
  name="personform" 
  id="personform"
  action="<?php echo $_SERVER['PHP_SELF'];?>"
  method="POST">
  
  <input name="id" id="id" type="hidden" value ="<?php echo $id?>"/>
  <p>Fullname: <input name="fullname" id="fullname" type="text" size="30"
    value="<?php echo $fullname?>"></p> 
  <p>Birthdate: <input name="birthdate" id="birthdate" type="text" size="30"
    value="<?php echo $birthdate?>"      
    ></p>  
  <p>Country:   
  <select name="country_code" id="country_code"   
  >
  <?php
  foreach ($country_list as $row) {
	if ($row['Code'] == $country_code) {
		$selected = 'selected';
	} else { $selected = ''; }
    printf('<option value="%s" %s>%s</option>', 
	        $row['Code'], $selected, $row['Name'] );
  }
  ?>
  </select>
  </p>     
  <p><input type="submit" value="Save"></p>
  
</form>  

<?php
}
elseif ($_SERVER['REQUEST_METHOD'] == 'POST') {
?>
<meta http-equiv="refresh" content="0.5; url=/kurs/person.php" />
<?php

$fullname = $_POST['fullname'];
$birthdate = $_POST['birthdate'];
$country_code = $_POST['country_code'];

if (isset($_POST['id']) and  $_POST['id'] != '' ) {
  echo "updating<br>\n";
  $id = $_POST['id'];
  $sth = $dbh->prepare(
  "update person 
    set fullname = ?,
        birthdate = ?,
        country_code = ? 
   where id = ?"
  );	
  $sth->bind_param("sssd", $fullname, $birthdate, $country_code, $id);
} else {
  echo "inserting<br>\n";
  $sth = $dbh->prepare(
    "insert into person 
      (fullname, 
       birthdate, 
       country_code) 
     values (?, ?, ?)"
  );	
  $sth->bind_param("sss", $fullname, $birthdate, $country_code);
}  
$sth->execute();
}

function list_persons($dbh) {
$person_list = 
  $dbh->query('select id, fullname, birthdate, country_code from person')
      ->fetch_all(MYSQLI_ASSOC);	  
	  
?>
</pre>
<div id="person_list">
<?php
foreach ($person_list as $person) {
  printf (
  "<li><a href='person.php/write/id/%d'>%s</a>, %s, %s </li>\n", 
             $person['id'],
			 $person['fullname'],
			 $person['birthdate'],
			 $person['country_code']
			 );			 
}
	
?>
</div>
<br>
<a href='person.php/write'>Add new person</a>
<html>
<?php
}
simple_crud.txt · Last modified: 2016/05/23 15:32 by mh