Mit dem Update funktioniert es jetzt.
Nun wird es langsam kompliziert.
Die Benutzer der alten Datenbank, haben das Feld NAMEN etwas ungünstig belegt. Dem NAMEN ist ein Drucker als Gerät zugeteilt. Im NAMEN ist jedoch auch enthalten, was mit dem Gerät eigentlich ist (sofern etwas besonderes ist):
Sofern es Schrott ist, lautet der Syntax: Schrott/ Nachname oder Schrott/Nachname oder Schrott
Sofern es ein Leihgerät ist, Leih/ Nachname oder Leih/ Nachname oder Leihgerät
Sofern es ein Ersatzgerät ist, Ersatz/ Nachname oder Ersatz/Nachname oder Ersatz
Problem 1:
Bis dahin nicht sooo schlimm, das Problem habe ich schon fast gelöst. Dazu verwende ich eine Function, die den String auf besagte Teilstrings checkt und die dann durch "" ersetzt. In der Therorie sieht das dann so aus: (hab mich einer alten bbcode umschreib function bedient, die ich irgendwo noch hatte)
PHP:
//funktion zum entfernen der schrott leih austausch ersatz und / strings aus dem NAMEN über PREG_REPLACE
function unstrip($text){
$bborig = array("/%leih%/", "/%Leih%/","/%austausch%/", "/%Austausch%/", "/%ersatz%/", "/%Ersatz%/", "/%schrott%/", "/%Schrott%/");
$bbrepl = array("repl","repl","repl","repl","repl","repl","repl","repl");
$text = preg_replace($bborig, $bbrepl, $text);
return $text;
}
//funktion zum entfernen der schrott leih austausch ersatz und / strings aus dem NAMEN über STR_REPLACE -> Kein Mitarbeitername enthält in der DB einen dieser Strings
function unstrip2($text){
$bborig = array("%leih%", "%Leih%","%austausch%", "%Austausch%", "%ersatz%", "%Ersatz%", "%schrott%", "%Schrott%", "%/");
$bbrepl = array("repl","repl","repl","repl","repl","repl","repl","repl","repl");
$text = str_replace ( $bborig,$bbrepl,$text);
return $text;
}
Doch da gibt es nun das Problem, dass er mir nicht den Text enstripped.
Da ich ja schleifenweise die Zeilen der CSV auslese, setze ich zu Beginn jedes Schleifendurchlaufes $entstriptertext = "nichtgeklappt" und rufe dann im Verlauf meiner IF Abfragen die Function unstrip($text) auf. $entstriptertext = unstrip($text).
An dieser Stelle sollte er also die alte Variable überschreiben, selbst wenn er nichts entstrippt. Aber wenn ich mir $entstriptertext am Ende der Schleife (nachdem die unstrip Function drübergelaufen ist) aufrufe, gibt er mir nachwievor aus: nichtgeklappt.
Hier der Code vom Call der function:
PHP:
if (strstr($temp[3],'Schrott') OR strstr($temp[3],'schrott')){//IF SCHROTT BEI LEIHGERÄTEN AUF
$verbleibschrott = "UPDATE drucker SET verbleibnr='1' WHERE druckernr LIKE '".$i."'";
$resultschrott = mysql_query ($verbleibschrott);
if(!$resultschrott) echo mysql_error(); // debugger
else echo "Schrott: $resultschrott "; //debugger
//Entstrippen
$entstripped2 = unstrip2($temp[3]);
echo " Unstripped -><b>$entstripped</B><-";
$getMANR2 = " SELECT manr FROM mitarbeiter WHERE name LIKE '".$entstripped2."' ";
$resultMANR2 = mysql_query ($getMANR2);
if(!$resultMANR2) echo mysql_error(); // debugger
else echo "MANR $resultMANR2 gefunden "; //debugger
$insertMANR2 = "UPDATE drucker SET manr='".$resultMANR2."' WHERE druckernr LIKE '".$i."'";
$resultinsertMANR2 = mysql_query ($insertMANR2);
if(!$resultinsertMANR2) echo mysql_error(); // debugger
else echo "MANR $resultinsertmanr2 eingetragen "; //debugger
}//IF SCHROTT BEI LEIHGERÄTEN ZU
Problem 2
Dummerweise gibt es darüberhinaus bei den über 500 Mitarbeitern mehrere, die den gleichen Nachnamen tragen. Da aber dann nur der erste dieser Mitarbeiter der Datenbank sämtliche Drucker zugeteilt bekommen würde, muss da eine Unterscheidung gemacht werden. Glücklicherweise haben meine Mitarbeiter in den meisten Fällen dann den Namen auf diese Art und Weise geschrieben:
Nachname, Vorname
Das ist natürlich dann auch wieder beliebig oft mit Schrott/ und Ersatz/ etc. kombinierbar.
Ich muss also die Datenbankabfrage so starten, dass er mir Nachname UND Vorname abfragt, sofern in der Namenszeile der CSV Datei, die ich ja bekanntlich importiere, ein "," vorkommt und ansonsten nur den Namen verwendet.
Ich hatte mir das so gedacht, dass ich dazu das so mache:
Den String irgendwie abschneiden hinterm Komma und diesen Teilstring als $vorname speichern, vom restlichen String das "," Strippen und als $Nachname speichern.
Mein Problem ist nun, welche Funktion ich dafür am besten verwende. Das meiste habe ich schon im Tutorial zu ereg und str von Tim gelesen, aber ich bin mir nicht sicher, was für meinen konkreten Fall das beste ist.
Wenn Ihr Tipps und Ratschläge zu den beiden Problemen habt, bin ich Euch nachwievor dankbar für alles