[PHP] Aufruf eines geschachtelten Arrays

Mit meiner zuletzt geposteten Version geht es nun.
Der Fehler war - wie so oft - trivial.
Stichwort: Case Sensitiv.

Schrott muss einfach Groß geschrieben sein, dann funktioniert es.
 
Original geschrieben von micha
Mit meiner zuletzt geposteten Version geht es nun.
Der Fehler war - wie so oft - trivial.
Stichwort: Case Sensitiv.

Schrott muss einfach Groß geschrieben sein, dann funktioniert es.
Auszug Funktionsbeschreibung eregi():

Diese Funktion entspricht ereg() mit dem Unterschied, dass sie übereinstimmende Buchstaben nicht nach Groß- und Kleinschreibung unterscheidet.

http://de3.php.net/eregi

Warum rumprobieren, wenn es im Handbuch steht? :p
 
Es funktioniert nun nachwievor alles wunderbar, nur im nächsten Schritt meines Projektes möchte ich Daten aus meiner neuen Datenbank auslesen und mit denen der CSV vergleichen und dann ggf. Einträge erstellen.

Habe den kompletten Code schon fertig geschrieben, nur er liest aus der Datenbank nichts aus. Die Queries sind meiner Meinung nach richtig, PHP Parse Errors bekomme ich nicht, Jedoch bekomme ich MYSQL Fehler, sofern ich mysql_errors () aktiviere.

Der MYSQL Error deutet auf einen Fehler in meinem Query hin jedoch finde ich ihn nicht.

Ich vermute einen kleinen Syntaxfehler, den die Profis wohl auf den ersten Blick finden, ich jedoch mit meiner mangelnden Erfahrung noch nicht sehe.

Danke für jeden kurzen Blick über meinen Code

PHP:
//starte sql abfrage nach manr, sofern name in db vorhanden
		$query1 = "SELECT 'manr' FROM 'mitarbeiter' WHERE 'name' LIKE '".$temp[3]."' LIMIT 0,30";
		$sqldrumanr = mysql_query ($query1);
		  if($sqldrumanr) { 
            echo "<font color='green'>MANR gefunden</font> "; 
			$query2 = "INSERT INTO 'drucker' SET('MANr') values ('".$sqldrumanr."')";
		    $res2 = mysql_query ($query2);
			if($res2)
				echo "<font color='green'>und eingetragen</font> ";
				
			else 
				echo "<font color='#aa0000'>";
				echo " und nicht eingtragen ";//echo mysql_error();
				echo "</fonT>";
				
		  }// if zu von manr abfrage
		  else { 
				echo "<font color='#aa0000'>";
				echo " MANR nicht gefunden ";//echo mysql_error();
				echo "</fonT>";
			// sql insert into drucker.manr = "" ; 
			$query3 = "INSERT INTO 'drucker' SET ('MANr') values ('')";
		    $res3 = mysql_query ($query3);
			if($res3)
				echo "<font color='green'>MANR als blank eingetragen</font>";
				
			else 
				echo "<font color='green'>";
				echo " keine MANR eingetragen ";//echo mysql_error();
				echo "</fonT>";
            // sql insert into drucker.verbleibnr verbleib.verbleibnr = "aktiv"  4 = aktiv
			$query4 = "INSERT INTO 'drucker' SET ('verbleibnr') values ('4')";
		    $res4 = mysql_query ($query4);
			if($res4)
				echo "<font color='green'>AKTIV</font>";
				
			else 
				echo "<font color='#aa0000'>";
				echo " FEHLER bei INSERT von aktiv ";//echo mysql_error();
				echo "</fonT>";
          } // else zu von manr abfrage
 
Zuletzt bearbeitet:
Ich benutze diese Methode normal nicht, aber fehlt da nicht ein SET ?

$query2 = "INSERT INTO 'drucker' SET ('MANr') values ('".$sqldrumanr."')";
 
Naja, das INSERT scheint nicht das eigentliche Problem zu sein.
Das ganze scheitert ja schon daran, wenn er keine MANR Nummer findet.
Also die erste SELECT Abfrage.

Welche Methode von INSERTS verwendest Du denn ?
 
INSERT INTO tabelle SET spalte='Spalte', spalte2='Spalte2'

Find ich persönlich übersichtlicher. Poste doch mal die Fehlermeldung !
 
PHP:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''mitarbeiter' WHERE 'name' LIKE '%Samstag%' LIMIT 0,30' at line

Habe gerade gesehen, dass in der CSV das Feld $temp[3], dass den Namen des Mitarbeiters enthält, die Form hat:
"name, vorname" in der Datenbank mein Feld aber gesplittet ist in "name" und "vorname". Daher habe ich nun die "%" Platzhalter im Query eingefügt, dass er mir den Nachnamen herausfiltert.

PHP:
$query1 = "SELECT 'manr' FROM 'mitarbeiter' WHERE 'name' LIKE '%".$temp[3]."%' LIMIT 0,30";

LIMIT 0,30 kann ich eingetlich löschen.
 
Original geschrieben von micha
Naja, das INSERT scheint nicht das eigentliche Problem zu sein.
Das ganze scheitert ja schon daran, wenn er keine MANR Nummer findet.
Also die erste SELECT Abfrage.
Entferne doch mal die Single-Quotes bei dem Tabellen- und Spaltennamen. Also so:

PHP:
$query1 = "SELECT manr FROM mitarbeiter WHERE name LIKE '".$temp[3]."' LIMIT 0,30";
Alternativ ist es eigentlich auch immer sinnvoll, sich den eigentlichen Query-String mal im Browser ausgeben zu lassen. Den kann man dann mal in PHPMyAdmin oder MySQL Control Center reinpacken, und gucken, was dort mit der Abfrage passiert.
 
Im Phpmyadmin funktioniert der sql Befehl.
Zumindest gibt er mir unter Verwendung einer richtigen Belegung der Variable $temp[3] die richtige Mitarbeiternummer aus.

Werde mal die Singlequotes entfernen.

Und siehe da, es funktioniert.
Das ich auch immer mit den Single und Doublequotes nicht zurechtkomme :/

Danke !
 
Zurück