view interface/edit_section_db.php @ 1:ef6d0c6a13d7

(1)Add 'sort_by' time entry in main page. (check_sections.php) Modify check_sections_details page to have level3 option. (2)Modify map to have default dataset loaded.
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Wed, 21 Jan 2015 10:49:44 +0100
parents b12c99b7c3f0
children da5309d54083
line wrap: on
line source

<?php
include_once('Lib_mb_utf8.php');
include_once('config.php');
set_time_limit(0);
ini_set('memory_limit', '-1');

$link_mysql = mysql_connect($mysql_server, $mysql_user, $mysql_password);
mysql_query("SET NAMES utf8");

if (!$link_mysql) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db($mysql_database, $link_mysql);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
function checkSectionInfo($bookId){
	$query="SELECT * FROM sections_versions WHERE books_id=".$bookId." ORDER BY version DESC";
	$result=mysql_query($query);
	if(mysql_num_rows($result)==0){
		$row['version']=0;
		$row['editor']="";
		$row['date']="";
		return $row;
	}else{
		$row=mysql_fetch_assoc($result);
		return $row;
	}
}
function checkMissingPage($bookInfo,$versionInfo){
	$bookId=$bookInfo['id'];
	$bookPage=$bookInfo['line'];
        if($versionInfo['version']!=0){
		$table="sections_revisions";
		$condition=" AND versions_id=".$versionInfo['id']." AND deleted=0 ";
		$versionId=$versionInfo['id'];
	}else{
		$table="sections";
		$condition="";
	}
	$query="SELECT *
		FROM ".$table." 
		WHERE books_id=".$bookId." ".$condition." 
		GROUP BY books_id,start_page,end_page 
		ORDER BY books_id,start_page,level,end_page";
	$result=mysql_query($query);
	$lastPage=1;
	$i=0;
	$pageArray=array();
	while($row=mysql_fetch_assoc($result)){
		if($row['start_page']-1>$lastPage){
			$pageArray[$i]['start_page']=$lastPage;
			$pageArray[$i]['end_page']=$row['start_page'];
			//echo $pageArray[$i]['start_page']." ".$pageArray[$i]['end_page']."<br>";
			$i++;
		}
		$lastPage=$row['end_page'];
	}
	if($bookPage>$lastPage){
		$pageArray[$i]['start_page']=$lastPage;
                $pageArray[$i]['end_page']=$bookPage;
	}
	return $pageArray;
}
function getSectionArray($bookId,$count,$versionInfo){
        $str="";
        if($versionInfo['version']!=0){
		$table="sections_revisions";
		$condition="AND deleted=0 ";
		$condition=" AND versions_id=".$versionInfo['id']." AND deleted=0 ";
	}else{
		$table="sections";
		$condition="";
	}
        $query="SELECT * 
                FROM ".$table."
                WHERE books_id=".$bookId." ".$condition."
                GROUP BY books_id, start_page, end_page
                HAVING COUNT( * ) >=".$count."
                ORDER BY id ASC";
                /*ORDER BY start_page ASC, level ASC, id ASC,end_page DESC";*/
        $result=mysql_query($query);
        $i=0;
	$pageArray=array();
        while($row=mysql_fetch_assoc($result)){
                $pageArray[$i]['start_page']=$row['start_page'];
                $pageArray[$i]['end_page']=$row['end_page'];
                $i++;
        }
        if($versionInfo['version']!=0){
                $query="SELECT id AS revisions_id, name,books_id,section_after,start_page,end_page,level,split_from,sections_id AS id, deleted FROM sections_revisions WHERE versions_id=".$versionInfo['id']." ORDER BY revisions_id ASC";
        }else{
                $query="SELECT * FROM sections WHERE books_id=".$bookId." ORDER BY id ASC";
        }
        $result=mysql_query($query);
        $i=0;
	$sectionArray=array();
        while($row=mysql_fetch_assoc($result)){
                $flag="";
                if($i!=sizeof($pageArray) && $pageArray[$i]['start_page']==$row['start_page'] && $pageArray[$i]['end_page']==$row['end_page']){
                        $flag="overlapper";
                        $i++;
                }
                if($i!=0 && $pageArray[$i-1]['start_page']==$row['start_page'] && $pageArray[$i-1]['end_page']==$row['end_page']){
                        $flag="overlapper";
                }
                $row['flag']=$flag;
		if(!isset($row['deleted'])){
			$row['deleted']="";
		}else{
			if($row['deleted']==0){
				$row['deleted']="";
			}else{
				$row['deleted']="deleted";
			}
		}
                $sectionArray[]=$row;
        }
        return $sectionArray;
}
function updateSectionArray($bookId,$sectionArray,$version,$editor){
	$query="INSERT INTO sections_versions (version,editor,date,books_id) VALUES (".($version+1).",'".$editor."',NOW(),'".$bookId."')";	
	$result=mysql_query($query);
	if(!$result){
		echo json_encode("Failed during inserting version records.");
		return;
	}
	$versionId=mysql_insert_id();
	$query="INSERT INTO sections_revisions (name,books_id,section_after,start_page,end_page,level,split_from,sections_id,versions_id,deleted) VALUES ";
	foreach($sectionArray as $idx=>$row){
		$str="(";
		$str.="'".$row['name']."',";
		$str.="'".sprintf("%05d",$row['booksId'])."',";
		$str.="'".$row['sectionAfter']."',";
		$str.=$row['startPage'].",";
		$str.=$row['endPage'].",";
		$str.=$row['level'].",";
		$str.=$row['splitFrom'].",";
		$str.=$row['id'].",";
		$str.=$versionId.",";
		$str.=$row['deleted'];
		$str.=")";
		if($idx!=sizeof($sectionArray)-1){
			$str.=", ";
		}
		$query.=$str;	
	}
	$result=mysql_query($query);
	if(!$result){
		echo json_encode("Failed during inserting section records.");
		return;
	}else{
		echo json_encode("Succeeded.");
	}
}

if(isset($_POST['command']) && $_POST['command']!=''){
	$command=$_POST['command'];
	if($command=="write"){		
		
		$bookId=$_POST['bookId'];
		$sectionArray=$_POST['sectionArray'];
		$version=$_POST['version'];
		$editor=$_POST['editor'];

		foreach ($sectionArray as $key => $value) {
			//echo $key.',';
			foreach ($value as $key => $inner_val) {
				//echo $key.",".$inner_val."\n";
			}
		}
		
		//echo "bookId:".$bookId.", "."editor:".$editor;
		if(isset($bookId)&&isset($sectionArray)&&isset($version)&&isset($editor)&&\
			is_numeric($bookId) && sizeof($sectionArray)!=0 && is_numeric($version) && $editor!=""){
			
			updateSectionArray($bookId,$sectionArray,$version,$editor);
		}
		/*
		if(isset($_POST['bookId'])&&isset($_POST['sectionArray'])&&isset($_POST['version'])&&isset($_POST['editor'])&&\
			is_numeric($_POST['bookId']) && sizeof($_POST['sectionArray'])!=0 && is_numeric($_POST['version']) && $_POST['editor']!=""){
			$bookId=$_POST['bookId'];
			$sectionArray=$_POST['sectionArray'];
			$version=$_POST['version'];
			$editor=$_POST['editor'];
			
			echo "updating db...";
			// updateSectionArray($bookId,$sectionArray,$version,$editor);
		}
		*/
	}
}

?>