Achot: MySQL Update durchführen

Beitrag lesen

Hallo,

ein User kann bei mir eine Veranstaltung anlegen. Ich prüfe beim anlegen ob es diese Veranstaltung bereits gibt, dabei achte ich auf folgende Werte

  • Titel
  • Von
  • Bis

sind alle drei Werte gleich, kann das gleiche Projekt nicht noch einmal angelegt werden. Soweit so gut. Jetzt kommt mein Problem. Wenn ich die Werte bei

  • ar_kostensplittung
  • anzahl_kostensplittung

ändere, dann soll ein Update durchgeführt werden. Wie könnte ich dieses Problem angehen? Mein Code sieht folgendermaßen aus

$titel = $_POST["titel"];
$von   = $_POST["von"];
$bis   = $_POST["bis"];

$stmt = $mysqli->prepare("SELECT status, titel, von, bis, p_h_d, p_h_u, kostensplittung,
                                 anzahl_kostensplittung, name, vorname 
                          FROM projekte 
                          WHERE titel =? AND von =? AND bis =?");
    
    $stmt->bind_param("sss", $titel, $von, $bis);
    $stmt->execute();
    $stmt->store_result();
    $test =  $stmt->num_rows;
    $stmt->bind_result($status, $titel, $von, $bis, $p_h_d, $p_h_u, $kostensplittung,
                       $anzahl_kostensplittung, $name, $vorname);
    $stmt->fetch();
    $stmt->close();

    if ($test == 1) {
    	
    $errors[] = "Diese Veranstaltung wurde bereits von " . $vorname. " " . $name . " am " . $p_h_d . " um " . $p_h_u . " Uhr angelegt";
    
	}
	
  if(isset($_POST['abschicken']) && empty($errors)) {

		if(isset($_GET['code'])) {

		if ($stmt = $mysqli->prepare("
                                Update projekte SET titel=?, von=?, bis=?
                                       kostensplittung=?, anzahl_kostensplittung=? WHERE code = ?"))
		 {    
				$titel	 		= $_POST["titel"];
				$von		 	= $_POST["von"];
				$bis		 	= $_POST["bis"];
				$kostensplittung	= $_POST["kostensplittung"];
      			        $anzahl_kostensplittung	= $_POST["anzahl_kostensplittung"];
			

			$stmt->bind_param("ssssss",	
						$titel,
						$von,
						$bis,
						$kostensplittung, 
						$anzahl_kostensplittung,
						$code
		 );

	} } }

	$stmt->execute();
				header("Location: $headerLocation");
	}
				else {
						echo $mysqli -> error;
					}
	};