MYSQL Eintrag mit PHP bearbeiten.

Ok jetzt funktioniert es fast.

Das fast bezieht sich auf einen kleinen unschönen Bug: Wenn ich auf Speichern klicke, dann wird er nach dem Speichern nicht auf die index.php umgeleitet sondern direkt wieder auf index.php?p=edit&action= allerdings OHNE ID Nummer.

Was mach ich noch falsch?

PHP:
if(isset($_POST['speichern'])){
		$holzart = $_POST['holzart'];
		$starke = $_POST['starke'];
		$klasse = $_POST['klasse'];
		$trocken = $_POST['trockenheit'];
		$partie = $_POST['partienummer'];
		$kubik = $_POST['kubik'];
		$hauptl = $_POST['hauptlange'];
	
		mysql_query("UPDATE suchmaschine 
					SET 
						Holzart = '".mysql_real_escape_string($holzart)."', 
						Starke = '".mysql_real_escape_string($starke)."', 
						Klasse = '".mysql_real_escape_string($klasse)."', 
						Trockenheit = '".mysql_real_escape_string($trocken)."', 
						Partie = '".mysql_real_escape_string($partie)."', 
						Kubik = '".mysql_real_escape_string($kubik)."'
					WHERE 
						ID = '".mysql_real_escape_string($_GET['action'])."'");

	
	if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 Eintrag wurde bearbeitet";
header("Location:index.php");
mysql_close($con);
}
ob_end_flush();
?>

ob_start(); wird ganz am Anfang der Datei aufgerufen.
 
Danke das funktioniert jetzt auch.

Eines noch: Wie kann ich jetzt die Datei die in der Spalte Pfad(wird in dem Script noch nicht verwendet) nach dem bearbeiten auch noch richtig umspeichern?

Der Pfad setzt sich aus den einzelnen Feldern zusammen und am Ende steht die Nummer.pdf.

Wenn ich z.b. ausversehen statt Ahorn Birke genommen habe und das korrigiere, möchte ich die Datei noch vom Ahorn in den Birken Ordner mit derselben Ordnerstruktur verschieben bzw. wenn ich die Partienummer falsch habe, das die Datei dann umbenannt wird.

Wie geht das?
 
Ich denke mal da wirst du am besten dran sein wenn du einfach hergehst und beim Speichern die alte Datei generell löschst und eben mit den beim Ändern gemachten Angaben neu erstellst.

Ansonsten musst du sie mit rename umbenennen, dann mit copy ins korrekte Verzeichnis kopieren und dann noch mit unlink die alte Datei löschen.

Wobei du das Umbenennen natürlich auch beim Kopieren machen kannst!
 
Ok Danke nochmal, leider funktioniert es nicht so wie gewünscht.

Ich hab das jetzt so umgesetzt:

PHP:
		$pfadalt = $_POST['Pfad'];
		$pfadneu = ("./Masslisten/".$holzart."/".$klasse."/".$trocken."/".$starke."/");
		$pfadtmp = $pfadalt;
		$pfadneudatei = ($pfadneu.$partie.".pdf");
		
		if(!file_exists($pfadneudatei)){
			mkdir($pfadneu, 0, 0777);
			copy($pfadalt, $pfadneudatei);
			rename($pfadtmp, $pfadneudatei);
			unlink($pfadalt);
		}

Die Datenbank wird richtig aktualisiert, aber die Datei verschiebt er mir nicht.
 
$pfadalt wird wohl der Pfad der alten Datei sein, ohne den Dateinamen selber
$pfadneu ist entsprechend der neue Dateipfad, ebenfalls ohne den Dateinamen

Wenn ich mich nicht sehr täusche, musst du aber bei copy, rename usw. den Pfad zusammen mit den Dateinamen angeben. Du hast als ersten Parameter nur den Pfad zur Datei.

Lass dir einfach mal mit echo die Inhalte aller Variablen ausgeben und schau ob sie auch die benötigten Werte haben.

Sinngemäß müsste es wohl so aussehen:

PHP:
<?php

$pfadalt = "hauptverzeichnis/falsches_verzeichnis/falscher_dateiname.txt";
$pfadneu = "hauptverzeichnis/unterverzeichnis/";
$pfadneudatei = $pfadneu ."dateiname.txt";

if(!file_exists($pfadneudatei)){
	mkdir($pfadneu, 0, 0777);
	copy($pfadalt, $pfadneudatei);
	unlink($pfadalt);
}

?>
 
Zuletzt bearbeitet:
$pfadalt ist der Pfad der in der Datenbank steht, also z.b. ./1/2/3/4/1234.pdf.

Im Grunde war mein Lösungsansatz nicht schlecht, leider funktioniert es auch mit deiner Variante nicht so wie es soll. Der Pfad wird zwar erstellt, die Datei wird nicht kopiert und die alte nicht gelöscht.
 
Dann stimmen bei dir wohl die Pfadangeben und/oder der Dateiname nicht. Wobei ich eher denke das die Pfadangaben falsch sind.

Geh einfach mal her und prüfe mit file_exists ob du die Dateien findest wenn du deine Variablen verwendest.
 
Ich hab jetzt für jede Variable eine file_exists Abfrage gemacht, hat aber nichts geändert, keine Fehlermeldung oder dergleichen.

Im Prinzip ist es ja Egal wo die Datei liegt, solange der Pfad in der DB stimmt und auf die Richtige Datei verweist.

Ich werds versuchen ob ich da was hinkriege, aber ich werd das mal zurückstellen und mich dem nächsten Projekt widmen, danke.
 
Zurück