<?PHP $title = "DB Update from XML"; $header = "DB Update from XML"; $Page["Public"] = "N"; include ("./inc/header.php"); include ("./inc/funktion_user.php"); include ("./inc/funktion_xml.php"); /////////// // DEBUG // /////////// $EnableRooms = true; $EnableRoomsDB = true; $EnableSchudle = true; $EnableSchudleDB = true; //$EnableRooms = false; //$EnableRoomsDB = false; //$EnableSchudle = false; //$EnableSchudleDB = false; /*############################################################################################## F I L E ##############################################################################################*/ echo "\n\n<br>\n<h1>XML File:</h1>\n"; if( isset($_POST["PentabarfUser"]) && isset($_POST["PentabarfPasswd"]) && isset($_POST["PentabarfURL"])) { echo "Update XML-File from Pentabarf.."; /* $Command = "wget --http-user=". $_POST["PentabarfUser"]. " --http-passwd=".$_POST["PentabarfPasswd"]. " ". $_POST["PentabarfURL"]. " --output-file=/tmp/engelXMLwgetLog --output-document=/tmp/engelXML"; */ $Command = "lynx -auth=". $_POST["PentabarfUser"]. ":".$_POST["PentabarfPasswd"]. " -dump ". $_POST["PentabarfURL"]. " > /tmp/engelXML"; echo system( $Command, $Status); if( $Status==0) echo "OK.<br>"; else echo "fail ($Status)($Command).<br>"; } else { echo "<form action=\"dbUpdateFromXLS.php\" method=\"post\">\n"; echo "<table border=\"0\">\n"; echo "\t<tr><td>XML-File:</td>". "<td><input name=\"PentabarfURL\" type=\"text\" size=\"100\" maxlength=\"1000\" ". "value=\"https://pentabarf.cccv.de/pentabarf/xml/fahrplan/conference/1\"></td></tr>\n"; echo "\t<tr><td>Username:</td>". "<td><input name=\"PentabarfUser\" type=\"text\" size=\"30\" maxlength=\"30\"></td></tr>\n"; echo "\t<tr><td>Password:</td>". "<td><input name=\"PentabarfPasswd\" type=\"password\" size=\"30\" maxlength=\"30\"></td></tr>\n"; echo "\t<tr><td></td><td><input type=\"submit\" name=\"FileUpload\" value=\"upload\"></td></tr>\n"; echo "</table>\n"; echo "</form>\n"; } //readXMLfile("xml.php.xml"); if( readXMLfile("/tmp/engelXML") == 0) { /* echo "<pre><br>"; echo $XMLmain->name; echo "<br>"; //print_r(array_values ($XMLmain->sub)); echo "<br>"; $Feld=7; echo "$Feld#". $XMLmain->sub[$Feld]->name. "<br>"; echo "$Feld#". $XMLmain->sub[$Feld]->sub; //print_r(array_values ($XMLmain->sub[$Feld]->sub)); while(list($key, $value) = each($XMLmain->sub[$Feld]->sub)) echo "?ID".$value->sub[1]->data. "=". $value->sub[2]->data. "\n"; echo "</pre>"; */ /*############################################################################################## V e r s i o n ##############################################################################################*/ echo "<hr>\n"; $XMLrelease = getXMLsubPease( $XMLmain, "RELEASE"); echo "release: ". $XMLrelease->data. "<br>\n"; $XMLreleaseDate = getXMLsubPease( $XMLmain, "RELEASE-DATE"); echo "release date: ". $XMLreleaseDate->data. "<br>\n"; echo "<hr>\n"; /*############################################################################################## R o o m ##############################################################################################*/ echo "\n\n<br>\n<h1>Rooms:</h1>\n"; function saveRoomData() { include ("./inc/db.php"); if( isset($_GET["RID"]) && isset($_GET["NumberXML"]) && isset($_GET["NameXML"])) { $SQL1 = "SELECT `RID` FROM `Room` ". "WHERE `RID` = '". $_GET["RID"]. "';"; $Erg1 = mysql_query($SQL1, $con); if( mysql_num_rows($Erg1)==1 ) $SQL= "UPDATE `Room` SET `Name` = '". mysql_escape_string($_GET["NameXML"]). "', `FromPentabarf`='Y', `Number`='". $_GET["NumberXML"]. "' ". "WHERE `RID` = '". $_GET["RID"]. "' LIMIT 1;"; else $SQL= "INSERT INTO `Room` ( `RID` , `Name`, `FromPentabarf`, `Number` ) ". "VALUES ('". $_GET["RID"]. "', '". mysql_escape_string($_GET["NameXML"]). "', 'Y', ". $_GET["NumberXML"]. ");"; $Erg = mysql_query($SQL, $con); if( $Erg ) echo "Aenderung, an Raum ". $_GET["NameXML"]. ", war erfogreich<br>"; else echo "Aenderung, an Raum ". $_GET["NameXML"]. ", war <u>nicht</u> erfogreich.(". mysql_error($con). ")<br>[$SQL]<br>"; } else echo "Fehler in den Parametern!<br>"; } /*function saveRoomData*/ function getDBRoomName( $RID) { include ("./inc/db.php"); $SQL = "SELECT Name FROM `Room` WHERE RID=$RID"; $Erg = mysql_query($SQL, $con); if(mysql_num_rows($Erg)>0) return mysql_result($Erg, 0, 0); else return ""; } /*function getDBRoomName*/ function getDBRoomNumber( $RID) { include ("./inc/db.php"); $SQL = "SELECT Number FROM `Room` WHERE RID=$RID"; $Erg = mysql_query($SQL, $con); if(mysql_num_rows($Erg)>0) return mysql_result($Erg, 0, 0); else return ""; } /*function getDBRoomNumber*/ if( isset($_GET["RoomUpdate"])) saveRoomData(); //INIT Status counter $DS_OK = 0; $DS_KO = 0; $Where = ""; //Ausgabe echo "<table border=\"0\">\n"; echo "<tr><th>RID</th><th>NumberXML</th><th>NumberDB</th><th>NameXML</th><th>NameDB</th><th>state</th></tr>\n"; $XMLroom = getXMLsubPease( $XMLmain, "ROOMS"); while( (list($key, $value) = each($XMLroom->sub)) && $EnableRooms) { $XMLRID = getXMLsubPease( $value, "ID"); $RID = $XMLRID->data; $XMLNumber = getXMLsubPease( $value, "NUMBER"); $NumberXML = trim($XMLNumber->data); $XMLName = getXMLsubPease( $value, "NAME"); $NameXML = trim($XMLName->data); if( isset($_GET["UpdateALL"])) { $_GET["NameXML"] = $NameXML; $_GET["NumberXML"] = $NumberXML; $_GET["RID"] = $RID; saveRoomData(); } $NameDB = convertValues(getDBRoomName($RID)); $NumberDB = convertValues(getDBRoomNumber($RID)); echo "<form action=\"dbUpdateFromXLS.php\">\n"; echo "\t<tr>\n"; echo "\t<td><input name=\"RID\" type=\"text\" value=\"$RID\" size=\"1\" eadonly></td>\n"; echo "\t<td><input name=\"NumberXML\" type=\"text\" value=\"$NumberXML\" size=\"1\" readonly></td>\n"; echo "\t<td><input name=\"NumberDB\" type=\"text\" value=\"$NumberDB\" size=\"1\"readonly></td>\n"; echo "\t<td><input name=\"NameXML\" type=\"text\" value=\"$NameXML\" readonly></td>\n"; echo "\t<td><input name=\"NameDB\" type=\"text\" value=\"$NameDB\" readonly></td>\n"; if( !( $NameXML==$NameDB && $NumberXML==$NumberDB) ) { echo "\t<td><input type=\"submit\" name=\"RoomUpdate\" value=\"update\"></td>\n"; $DS_KO++; } else { echo "\t<td>OK</td>\n"; $DS_OK++; } echo "\t</tr>\n"; echo "</form>\n"; $Where.= " OR RID=$RID"; } echo "<tr><td colspan=\"6\">status: $DS_KO/$DS_OK nicht Aktuel.</td></tr>\n"; //Anzeige von nicht im XML File vorkommende entraege $SQL2 = "SELECT * FROM `Room` WHERE NOT (".substr( $Where, 4). ") AND FromPentabarf = 'Y';"; $Erg2 = mysql_query($SQL2, $con); if( mysql_num_rows($Erg2)>0 && $EnableRoomsDB ) for( $i=0; $i<mysql_num_rows( $Erg2); $i++) { $RID = mysql_result( $Erg2, $i, "RID"); $NumberDB = mysql_result( $Erg2, $i, "Number"); $NameDB = mysql_result( $Erg2, $i, "Name"); echo "\t<tr>\n"; echo "\t<td><input name=\"RID\" type=\"text\" value=\"$RID\" size=\"1\" eadonly></td>\n"; echo "\t<td><input name=\"NumberXML\" type=\"text\" value=\"\" size=\"1\" readonly></td>\n"; echo "\t<td><input name=\"NumberDB\" type=\"text\" value=\"$NumberDB\" size=\"1\"readonly></td>\n"; echo "\t<td><input name=\"NameXML\" type=\"text\" value=\"\" readonly></td>\n"; echo "\t<td><input name=\"NameDB\" type=\"text\" value=\"$NameDB\" readonly></td>\n"; echo "\t<td><a href=\"./room.php?action=change&RID=$RID\">edit</a></td>\n"; echo "\t<tr>\n"; } echo "</table>\n"; /*############################################################################################## S c h e d u l e ##############################################################################################*/ echo "\n\n<h1>Schudle:</h1>\n"; // erstellt ein Array der Reume $sql = "SELECT * FROM `Room` ". "ORDER BY `Number`, `Name`;"; $Erg = mysql_query($sql, $con); for( $i=0; $i<mysql_num_rows($Erg); $i++) for( $j=0; $j<mysql_num_fields( $Erg); $j++) $RoomID[ mysql_result($Erg, $i, "RID")] [ mysql_field_name($Erg, $j)] = mysql_result($Erg, $i, $j); function SaveSchedule() { global $RoomID; include ("./inc/db.php"); if( isset($_GET["SIDXML"]) && isset($_GET["DateXML"]) && isset($_GET["RIDXML"]) && isset($_GET["LenXML"]) && isset($_GET["ManXML"]) ) { //erzeuge von `DateE` $TimeStart = substr( $_GET["DateXML"], 11, 2) + (substr($_GET["DateXML"], 14, 2)/60); $TimeEnd = ($_GET["LenXML"] + $TimeStart) * 60; $TimeM = $TimeEnd % 60; $TimeH = ($TimeEnd - $TimeM)/60; if( $TimeH>=24 ) { $TimeH -= 24; $DateEnd = substr($_GET["DateXML"], 0, 8). (substr($_GET["DateXML"], 8, 2)+1). " "; } else $DateEnd = substr($_GET["DateXML"], 0, 11); $DateEnd .= "$TimeH:$TimeM:00"; //Update OR insert ? $SQL1 = "Select `SID` FROM `Shifts` WHERE `SID`='". $_GET["SIDXML"]. "';"; $Erg1 = mysql_query($SQL1, $con); if( mysql_num_rows($Erg1)==0) $SQL= "INSERT INTO `Shifts` (`SID`, `DateS`, `DateE`, `Len`, `RID`, `Man`, `FromPentabarf`) ". "VALUES ('". $_GET["SIDXML"]. "', '". $_GET["DateXML"]. "', '". $DateEnd. "', '". $_GET["LenXML"]. "', '". $_GET["RIDXML"]. "', '". mysql_escape_string($_GET["ManXML"]). "', 'Y');"; else $SQL= "UPDATE `Shifts` SET ". "`DateS` = '". $_GET["DateXML"]. "', ". "`DateE` = '". $DateEnd. "', ". "`Len` = '". $_GET["LenXML"]. "', ". "`RID` = '". $_GET["RIDXML"]. "', ". "`Man` = '". mysql_escape_string($_GET["ManXML"]). "', ". "`FromPentabarf`= 'Y' ". "WHERE `SID` = '". $_GET["SIDXML"]. "' LIMIT 1;"; $Erg = mysql_query($SQL, $con); if( $Erg ) { echo "Aenderung, am Schedule '". $_GET["SIDXML"]. "', war erfogreich<br>\n"; if( mysql_num_rows($Erg1)==0) { echo "-->Create Shifts:<br>\n"; foreach ($RoomID[ $_GET["RIDXML"]] as $Key => $Value) if( substr( $Key, 0, 12)=="DEFAULT_EID_" && $Value > 0 ) { echo "---->Create engeltype: ". substr( $Key, 12). " ". $Value. "x<br>\n"; $i=0; while( $i++ < $Value ) { $SQL3 = "INSERT INTO `ShiftEntry` (`SID`, `TID`) VALUES (". "'". $_GET["SIDXML"]. "', '". substr( $Key, 12). "');"; $Erg = mysql_query($SQL3, $con); if ($Erg == 1) echo "------>pass<br>\n"; else echo "------>fail <u>". mysql_error($con). "</u>($SQL3)<br>\n"; } } echo "<br>\n"; } } else echo "Aenderung, am Schedule '". $_GET["SIDXML"]. "', war <u>nicht</u> erfogreich.(". mysql_error($con). ")<br>[$SQL]<br>\n"; } else echo "Fehler in den Parametern!<br>"; } /*SaveSchedule*/ if( isset($_GET["ScheduleUpdate"])) SaveSchedule(); //INIT Status counter $DS_OK = 0; $DS_KO = 0; $Where = ""; //ausgabe echo "<table border=\"0\">\n"; echo "<tr><th>SID</th><th>Date</th>". "<th>Room</th><th>Len</th><th>Name</th><th>state</th></tr>\n"; echo "<tr align=\"center\"><td>XML - DB</td><td>XML - DB</td>". "<td>XML - DB</td><td>XML - DB</td><td>XML - DB</td><td></td></tr>\n"; $XMLevents = getXMLsubPease( $XMLmain, "EVENTS"); while( (list($EventKey, $Event) = each($XMLevents->sub)) && $EnableSchudle) { echo "<form action=\"dbUpdateFromXLS.php\">\n"; echo "\t<tr>\n"; $DateXML = substr($Event->attributes["START"], 0, 10). " ". substr($Event->attributes["START"], 11). ":00"; $LenXML = $Event->attributes["DURATION"]; $LenXML = substr( $LenXML, 0, 2) + (substr($LenXML, 3, 2)/60); $XMLeventID = getXMLsubPease( $Event, "ID"); $SIDXML = $XMLeventID->data; $RIDXML = $Event->attributes["ROOM-ID"]; $XMLTitle = getXMLsubPease( $Event, "TITLE"); $ManXML = $XMLTitle->data; if( isset($_GET["UpdateALL"])) { $_GET["SIDXML"] = $SIDXML; $_GET["DateXML"] = "$DateXML $TimeXML"; $_GET["LenXML"] = $LenXML; $_GET["RIDXML"] = $RIDXML; $_GET["ManXML"] = $ManXML; SaveSchedule(); } $SQL = "SELECT * FROM `Shifts` WHERE SID=$SIDXML"; $Erg = mysql_query($SQL, $con); if(mysql_num_rows($Erg)>0) { $SIDDB = mysql_result($Erg, 0, "SID"); $TimeDB = mysql_result($Erg, 0, "DateS"); $LenDB = mysql_result($Erg, 0, "Len"); $RIDDB = mysql_result($Erg, 0, "RID"); $ManDB = mysql_result($Erg, 0, "Man"); } else $SIDDB = $TimeDB = $LenDB = $RIDDB = $ManDB= ""; echo "\t<td><input name=\"SIDXML\" type=\"text\" value=\"$SIDXML\" size=\"2\" eadonly></td>\n"; echo "\t<td><input name=\"DateXML\" type=\"text\" value=\"$DateXML\" size=\"17\" readonly>\n\t\t". "<input name=\"DateDB\" type=\"text\" value=\"$TimeDB\" size=\"17\" readonly></td>\n"; echo "\t<td><input name=\"RIDXML\" type=\"text\" value=\"$RIDXML\" size=\"1\" readonly>\n\t\t". "<input name=\"RIDDB\" type=\"text\" value=\"$RIDDB\" size=\"1\" readonly></td>\n"; echo "\t<td><input name=\"LenXML\" type=\"text\" value=\"$LenXML\" size=\"1\"readonly>\n\t\t". "<input name=\"LenDB\" type=\"text\" value=\"$LenDB\" size=\"1\"readonly></td>\n"; echo "\t<td><input name=\"ManXML\" type=\"text\" value=\"$ManXML\" size=\"40\"readonly>\n\t\t". "<input name=\"ManDB\" type=\"text\" value=\"$ManDB\" size=\"40\"readonly></td>\n"; if( !( $SIDXML==$SIDDB && $DateXML==$TimeDB && $RIDXML==$RIDDB && $LenXML==$LenDB && $ManXML==$ManDB) ) { echo "\t<td><input type=\"submit\" name=\"ScheduleUpdate\" value=\"update\"></td>\n"; $DS_KO++; } else { echo "\t<td>OK</td>\n"; $DS_OK++; } echo "\t</tr>\n"; echo "</form>\n"; $Where.= " OR SID=$SIDXML"; } echo "<tr><td colspan=\"6\">status: $DS_KO/$DS_OK nicht Aktuel.</td></tr>\n"; //Anzeige von nicht im XML File vorkommende entraege $SQL2 = "SELECT * FROM `Shifts` WHERE NOT (".substr( $Where, 4). ") AND FromPentabarf = 'Y';"; $Erg2 = mysql_query($SQL2, $con); if(mysql_num_rows($Erg2)>0 && $EnableSchudleDB ) for( $i=0; $i<mysql_num_rows( $Erg2); $i++) { echo "\t<tr>\n"; $SID = mysql_result($Erg2, $i, "SID"); $Time = mysql_result($Erg2, $i, "DateS"); $Len = mysql_result($Erg2, $i, "Len"); $RID = mysql_result($Erg2, $i, "RID"); $Man = mysql_result($Erg2, $i, "Man"); echo "\t<td><input name=\"SIDXML\" type=\"text\" value=\"$SID\" size=\"2\" eadonly></td>\n"; echo "\t<td><input name=\"DateXML\" type=\"text\" value=\"\" size=\"17\" readonly>\n\t\t". "<input name=\"DateDB\" type=\"text\" value=\"$Time\" size=\"17\" readonly></td>\n"; echo "\t<td><input name=\"RIDXML\" type=\"text\" value=\"\" size=\"1\" readonly>\n\t\t". "<input name=\"RIDDB\" type=\"text\" value=\"$RID\" size=\"1\" readonly></td>\n"; echo "\t<td><input name=\"LenXML\" type=\"text\" value=\"\" size=\"1\"readonly>\n\t\t". "<input name=\"LenDB\" type=\"text\" value=\"$Len\" size=\"1\"readonly></td>\n"; echo "\t<td><input name=\"ManXML\" type=\"text\" value=\"\" size=\"40\"readonly>\n\t\t". "<input name=\"ManDB\" type=\"text\" value=\"$Man\" size=\"40\"readonly></td>\n"; echo "\t<td><a href=\"./schichtplan.php?action=change&SID=$SID\">edit</a></td>\n"; echo "\t<tr>\n"; } echo "</table>"; /*############################################################################################## U P D A T E A L L ##############################################################################################*/ echo "\n\n<br>\n<h1>Update ALL:</h1>\n"; echo "<form action=\"dbUpdateFromXLS.php\">\n"; echo "\t<input type=\"submit\" name=\"UpdateALL\" value=\"now\">\n"; echo "</form>\n"; } //if XMLopenOOK include ("./inc/footer.php"); ?>