class CSVInterfaceList
{
public $Probenname;
public $Probennummer;
public $InterfacePairArray;
}
/**
* <b>CSVInterfacePair</b>
* <p>Enthält zwei Eigenschaften:
* <table><tr><th>$ID</th><th>$Value</th></tr>
* <tr>
* <td>Die ID</td>
* <td>Der Wert zu dieser ID</td>
* </tr>
* </table>
* @author fbfeix
*
*/
class CSVInterfacePair
{
public $ID;
public $Value;
}
class CSVInterface
{
protected $csv_array; // 2D-Array: 1. Dimension: Zeile, 2. Dimension: Spalte
/**
* <h3>Ein Array, dass alle Verfügbaren IDs enthält.</h3>
* </p>Der Index des jeweiligen Elements ist dabei die Wessling ID.</p>
* <p>Der Wert ist der Rohrdorfer Name wie er in der Tabelle in MySQL steht.</p>
* @var geschütztes Array(<b>WesslingID</b> | <b>Rohrdorfer Name</b>)
*/
protected $uebersetzungs_array; //index: Wessling-Id, Wert: Rohrdorfer Name
/**
* Konstruktor der Klasse 'CSVInterface'.
* Initialisiert das Übersetzungsarray
* @return boolean
*/
public function __construct()
{
//Mit MySQL verbinden
$con = mysql_connect("localhost", "root", "");
if (!$con)
return false;
//Datenbank öffnen
$select = mysql_select_db("labor");
if (!select)
return false;
//markiere genaue Tabelle und Spaltenname
$sql = "SELECT Rohrdorfer_Bezeichnung, wessling_id FROM sbs_werozuordnung_tbl";
//Öffnen der Tabelle und Ergebnis auswerten
$result = mysql_query($sql);
if($result)
{
while($row = mysql_fetch_array($result))
{
$this->uebersetzungs_array[$row['wessling_id']] = $row['Rohrdorfer_Bezeichnung'];
}
}
else
echo "Beim anlegen eines Übersetzungsarrays ist ein Fehler aufgetreten";
//Datenbank schließen
mysql_close($con);
}
private function read_csv($path)
{
//prüft den Pfad
if($path == "" || $path == null)
return false; //Pfad ist leer, Funktion beenden
//Ist die Datei auf die der Pfad verweist vorhanden?
if(!file_exists($path))
{
echo "Datei existiert nicht";
return false; //Datei ist nicht vorhanden: Funktion beenden
}
$fp = fopen($path, 'r');
if($fp == false)
{
return false;
}
//Zählvariable
$aktuelleZeilenNummer = 0;
while(! feof($fp))
{
$zeile = fgetcsv($fp, 4096, ';');
if($aktuelleZeilenNummer == 0) //Probennummern lesen
{
for($i = 4; $i < count($zeile); $i++)
{
$InterfaceElement = new CSVInterfaceList();
$InterfaceElement->Probennummer = $zeile[$i];
$this->csv_array[-4 + $i] = $InterfaceElement;
}
}
else if($aktuelleZeilenNummer == 1) //Probennamen lesen
{
for($i = 4; $i < count($zeile); $i++)
{
$this->csv_array[-4 + $i]->Probenname = $zeile[$i];
}
}
else //Probenwerte lesen
{
$zeile = $this->ReplaceNull($zeile);
for($i = 4; $i < count($zeile); $i++)
{
if($zeile[1] != "" && $zeile[$i] != "")
{
$Pair = new CSVInterfacePair();
$Pair->ID = $zeile[1];
$Pair->Value = $zeile[$i];
$this->csv_array[-4 + $i]->InterfacePairArray[] = $Pair;
}
}
}
//Zählvariable um 1 erhöhen
$aktuelleZeilenNummer++;
}
fclose($fp);
}
/**
* <b>CSV_IntoTmpDB()</b>
* <p>
* @return boolean
*/
private function CSV_IntoTmpDB()
{
$con = mysql_connect("localhost", "root", "");
if (!$con)
return false;
$select = mysql_select_db("labor");
if (!select)
return false;
//_____________________________________________________
//#####################################################
//Tmp-Datenbank-tabellen leeren (daten_tbl, proben_tbl)
$sql = "TRUNCATE TABLE `sbs_daten_tbl` ";
$result = mysql_query($sql);
if(!result)
die('Ungültige Abfrage: ' . mysql_error());
$sql = "TRUNCATE TABLE `sbs_proben_tbl` ";
$result = mysql_query($sql);
if(!result)
die('Ungültige Abfrage: ' . mysql_error());
//#####################################################
//#####################################################
//_____________________________________________________
//#####################################################
//neue Daten in Tmp-Datenbank-tabellen einfügen (daten_tbl, proben_tbl)
//Tab sortiert nach den Proben
echo '<div id="tabcontrol"><ul>';
for($i = 0; $i < count($this->csv_array); $i++)
{
if($this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
{
echo '<li><a href="#tabs-'.$this->csv_array[$i]->Probennummer.'">'.$this->csv_array[$i]->Probenname.' ('.$this->csv_array[$i]->Probennummer.')</a></li>';
}
}
echo '</ul>';
for($i = 0; $i < count($this->csv_array); $i++)
{
if($this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
{
//Start des Tab-Contents
echo '<div id="tabs-'.$this->csv_array[$i]->Probennummer.'">';
echo '<form name="form_'.$this->csv_array[$i]->Probennummer.'" id="form_'.$this->csv_array[$i]->Probennummer.'" action="templates/insertdata.php" method="post">';
echo '<table>';
echo '<tr><th style="width: 50%; ">Name</th><th style="width: 50%; ">Wert</th></tr>';
$sql = "INSERT INTO proben_tbl (proben_nummer, proben_name) VALUES (".$this->csv_array[$i]->Probennummer.",'".$this->csv_array[$i]->Probenname."')";
// echo "<br />".$sql."<br />";
$result = mysql_query($sql);
if(!result)
die('Ungültige Abfrage: ' . mysql_error());
$sql = "INSERT INTO daten_tbl (value, werozuordnung_id, daten_proben_id) VALUES (".
$this->csv_array[$i]->InterfacePairArray[0]->Value.
",'".$this->csv_array[$i]->InterfacePairArray[0]->ID.
"',".mysql_insert_id().")";
for($j = 0; $j < count($this->csv_array[$i]->InterfacePairArray); $j++)
{
$sql .= ", (".$this->csv_array[$i]->InterfacePairArray[$j]->Value.
",'".$this->csv_array[$i]->InterfacePairArray[$j]->ID.
"',".mysql_insert_id().")";
//liste erzeugen:
if($this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID])
{
echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID].'</td>';
echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.
$this->csv_array[$i]->InterfacePairArray[$j]->ID."of".$this->csv_array[$i]->Probennummer.
'" value="'.
$this->csv_array[$i]->InterfacePairArray[$j]->Value.
'"/></td></tr>'."\n";
}
}
// echo "<br />".$sql."<br />";
//Probennummer, -name und -bemerkung
echo "<tr><td><br /></td><td><br /></td></tr>";
echo '<tr><td>Probennummer</td><td><input type="text" name="probennummer" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probennummer.'" /></td></tr>';
echo '<tr><td>Probenname</td><td><input type="text" name="probenname" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probenname.'" /></td></tr>';
echo '<tr><td>Bemerkung</td><td><input type="text" name="probenbemerkung" class="tablecontrollinginput" /></td></tr>';
echo "</table>";
//Ende des Tab-Contents
echo '</form>';
echo '<div style="min-height: 40px;" id="Con_for_Btn_'.$this->csv_array[$i]->Probennummer.'">';
echo '<button name="Button'.$this->csv_array[$i]->Probennummer.'" style="float: right; padding: 4px 0px;" onclick="SetValues(document.getElementById('."'" . 'form_'.$this->csv_array[$i]->Probennummer."'),'tabs-".$this->csv_array[$i]->Probennummer."')".'">In Datenbank eintragen</button>';
echo '</div>';
echo '</div>';
$result = mysql_query($sql);
if(!result)
die('Ungültige Abfrage: ' . mysql_error());
}
}
//#####################################################
//#####################################################
mysql_close($con);
}
private function CSV_IntoTmpDB2()
{
$con = mysql_connect("localhost", "root", "");
if (!$con)
return false;
$select = mysql_select_db("labor");
if (!select)
return false;
$sql = "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ";
echo '<table>';
echo '<tr><th style="width: 400px; ">Name</th><th style="width: 400px; ">Wert</th></tr>';
for($i = 2; $i < count($this->csv_array); $i++)
{
for($j = 4; $j < count($this->csv_array[$i]); $j++) //beginnt bei der 5. Spalte
{
$this->csv_array[$i][$j] = str_replace(',', '.', $this->csv_array[$i][$j]);
// if($i > 2)
// {
// $this->csv_array[$i][$j] = str_replace('.', '', $this->csv_array[$i][$j]);
// }
if($this->csv_array[$i][$j] != "" && $this->csv_array[$i][1] != "") //damit werden alle leeren Elemente entfernt bzw. nicht eingetragen
{
if($i +1 == count($this->csv_array))
{
if($sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
$sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
else
$sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
if($this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
{
echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>."\n"';
}
}
else
{
if($sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
$sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."')";
else
$sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
if($this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
{
echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>'."\n";
}
}
}
}
}
echo '</table>';
$result = mysql_query($sql);
if(!result)
die('Ungültige Abfrage: ' . mysql_error());
mysql_close($con);
}
/**
* Löscht ein leeres Element in einem Array
* @param 1D-Array $zeile
* @return 1D-Array
*/
private function DeleteEmptyColumns($zeile)
{
for($i = 0; $i < count($zeile); $i++)
{
if($zeile[$i] != "")
{
$output[] = $zeile[$i];
}
}
return $output;
}
private function ReplaceNull($zeile)
{
for($i = 0; $i < count($zeile); $i++)
{
if($zeile[$i] != "")
{
$output[$i] = str_replace('.', '', $zeile[$i]);
$output[$i] = str_replace(',', '.', $output[$i]);
$output1[$i] = str_replace(array('-/-', '<'), '', $output[$i]);
}
}
return $output1;
}
public function ImportCSVintoTmp($path)
{
$this->read_csv($path);
$this->CSV_IntoTmpDB();
return true;
}
private function MoveImportedCSV()
{
}
public function Import_TmpDB_intoDB()
{
}
}