2017-04-13 25 views
0

我无法使用我的更新表单处理两个文件上传字段。我可以通过create_form将文件上传到我的服务器,并将信息输入到SQL数据库中,但是我无法在没有收到错误的情况下进行编辑。文件不会上载,并且信息不会在SQL中更新。请帮忙!带有两个文件字段的更新表单

<?php require_once($_SERVER['DOCUMENT_ROOT']."/includes/session.php");?> 
<?php require_once($_SERVER['DOCUMENT_ROOT']."/includes/db_connection.php");?> 
<?php 
session_start(); 
if($_SESSION["login_user"] != true) { 
    echo("Access denied!"); 
    exit(); 
} 
?> 
<?php require_once($_SERVER['DOCUMENT_ROOT']."/includes/functions.php");?> 
<?php require_once($_SERVER['DOCUMENT_ROOT']."/includes/validation_functions.php");?> 
<?php find_selected_event_page(); ?> 
<?php 
    if (!$current_event) { 
    // page ID was missing or invalid or 
    // page couldn't be found in database 
    redirect_to("manage_content.php"); 
    } 
?> 
<?php 

if (isset($_POST['submit'])) { 
    // Process the form 

    // validations 
    $required_fields = array("visible"); 
    validate_presences($required_fields); 


    if (empty($errors)) { 

    // Perform Update 
     $id = $current_event["id"]; 
     $visible = mysql_prep($_POST["visible"]); 
     $homepage = mysql_prep($_POST["homepage"]); 
     $fa_id = mysql_prep($_POST["fa_id"]); 
     $title = mysql_prep($_POST["title"]); 
     $caption = mysql_prep($_POST["caption"]); 
     $url = mysql_prep($_POST["url"]); 
     $month = mysql_prep($_POST["month"]); 
     $date = mysql_prep($_POST["date"]); 
     $year = mysql_prep($_POST["year"]); 
     $summary = mysql_prep($_POST["summary"]); 
     $full_text = mysql_prep($_POST["full_text"]); 
     $image = rand(1000,100000)."-".$_FILES['image']['name']; 
      $image_loc = $_FILES['image']['tmp_name']; 
      $image_size = $_FILES['image']['size']; 
      $image_type = $_FILES['image']['type']; 
      $image_folder="images/"; 
      $file = rand(1000,100000)."-".$_FILES['file']['name']; 
      $file_loc = $_FILES['file']['tmp_name']; 
      $file_size = $_FILES['file']['size']; 
      $file_type = $_FILES['file']['type']; 
      $file_folder="files/"; 

$final_image=str_replace(' ','-',$new_image_name); 
$final_file=str_replace(' ','-',$new_file_name); 

    if($_FILES) {   

unlink("images/".$current_event['image']); 
move_uploaded_file($image_loc,$image_folder.$final_image); 

unlink("files/".$current_event['file']); 
move_uploaded_file($file_loc,$file_folder.$final_file); } 

     else 
    { 
    // if no image selected the old image remain as it is. 
    $final_image = $current_event['image']; // old image from database 
    $fine_file = $current_event['file']; // old image from database 

    } 


     $query = "UPDATE `events` SET "; 
     $query .= "`visible` = '{$visible}', "; 
     $query .= "`homepage` = '{$homepage}', "; 
     $query .= "`fa_id` = '{$fa_id}', "; 
     $query .= "`title` = '{$title}', "; 
     $query .= "`caption` = '{$caption}', "; 
     $query .= "`url` = '{$url}', "; 
     $query .= "`month` = '{$month}', "; 
     $query .= "`date` = '{$date}', "; 
     $query .= "`year` = '{$year}', "; 
     $query .= "`summary` = '{$summary}', "; 
     $query .= "`full_text` = '{$full_text}', "; 
     $query .= "`image` = '{$final_image}', "; 
     $query .= "`image_type` = '{$image_type}', "; 
     $query .= "`image_size` = '{$image_new_size}' "; 
     $query .= "`file` = '{$final_file}', "; 
     $query .= "`file_type` = '{$file_type}', "; 
     $query .= "`file_size` = '{$file_new_size}' "; 
     $query .= "WHERE `events`.`id` = {$id} "; 
     $query .= "LIMIT 1"; 
     $result = mysqli_query($connection, $query); 

     if ($result && mysqli_affected_rows($connection)) { 

      // Success 
      echo "<pre>".$query."</pre>"; 

      $_SESSION["message"] = "Item updated."; 
      redirect_to("manage_content.php"); 
     } else { 
      // Failure 
      //$_SESSION["message"] = "Item creation failed."; 
     //redirect_to("new_news.php"); 
     echo "Error: " . $query . "<br>" . $result->error; 

     } 

    } 
} else {   
    // This is probably a GET request 

} // end: if (isset($_POST['submit'])) 

?> 

我得到的错误是:

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 'file = '', file_type = '', file_size = '' WHERE events.id = 1 LIMIT 1' at line 1 

回答

0

更新

$query .= "`image_size` = '{$image_new_size}' "; 

$query .= "`image_size` = '{$image_new_size}' ,"; 

所以你的最终查询

$query = "UPDATE `events` SET "; 
     $query .= "`visible` = '{$visible}', "; 
     $query .= "`homepage` = '{$homepage}', "; 
     $query .= "`fa_id` = '{$fa_id}', "; 
     $query .= "`title` = '{$title}', "; 
     $query .= "`caption` = '{$caption}', "; 
     $query .= "`url` = '{$url}', "; 
     $query .= "`month` = '{$month}', "; 
     $query .= "`date` = '{$date}', "; 
     $query .= "`year` = '{$year}', "; 
     $query .= "`summary` = '{$summary}', "; 
     $query .= "`full_text` = '{$full_text}', "; 
     $query .= "`image` = '{$final_image}', "; 
     $query .= "`image_type` = '{$image_type}', "; 
     $query .= "`image_size` = '{$image_new_size}', "; 
     $query .= "`file` = '{$final_file}', "; 
     $query .= "`file_type` = '{$file_type}', "; 
     $query .= "`file_size` = '{$file_new_size}' "; 
     $query .= "WHERE `events`.`id` = {$id} "; 
     $query .= "LIMIT 1"; 
+0

谢谢 - 我现在可以对文本字段进行编辑!但是,这仍然不会从服务器中删除旧的文件并上传新的文件。两者都没有发生...... :( – surfingpig

+0

Ok print_r($ current_event);然后检查你的数据OK –

+0

它似乎将所有东西都加载到图像类型 – surfingpig

相关问题