2017-02-01 2 views
-2

Привет, мне трудно записывать текст с тегом ввода и изображением с помощью одной кнопки.Как сохранить изображение и текст отдельно в php mysqli

здесь моя форма:

<form method = "POST" action = "image_upload_featured.php" enctype = "multipart/form-data"> 
    <label>Drag or click for image</label> 
     <div id="uploader" onclick="$('#photo').click()"> 
    <img src=""/> 
    </div> 
    <input type="file" name="image" id="photo"/> 
    <div id = "file_name"></div> 
    <button class = "btn btn-primary" name = "save"><span class = "glyphicon glyphicon-download"></span> Save Image</button> 


    <input class = "w3-input w3-border" type = "text" name= "fullname" placeholder = "Fullname" style="margin-bottom: 15px;" required> 
    <input class = "w3-input w3-border" type = "text" name= "lname" placeholder = "Lastname" style="margin-bottom: 15px;" required> 
</form> 

У меня есть файл PHP, где он может сохраненное изображение

<?php 
include('db/database_configuration.php'); 
if(ISSET($_POST['save'])){ 

    if($_FILES['image']['name'] == ""){ 
      echo '<script>alert("Please Select an Image")</script>'; 
      echo '<script>window.location = "add_featured_alumni.php"</script>'; 
    }else{ 
     $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); 
     $image_name = addslashes($_FILES['image']['name']); 
     $image_size = getimagesize($_FILES['image']['tmp_name']); 
     move_uploaded_file($_FILES["image"]["tmp_name"], "featured_image/". $_FILES["image"]["name"]); 
     $location = $_FILES["image"]["name"]; 

     $stmt = $conn->prepare("INSERT INTO `tblfeatured` (image1) VALUES(?)") or die(mysqli_error()); 
     $stmt->bind_param("s", $location); 

     if($stmt->execute()){ 
      $stmt->close(); 
      $conn->close(); 
      echo '<script>alert("Successfully Upload Image")</script>'; 
      echo '<script>window.location = "add_featured_alumni.php"</script>'; 
     }else{ 
      echo '<script>alert("Error")</script>'; 
     } 
    } 
} 
?> 

Но это только для изображения, я знаю также, как сохранить текст используя тег ввода, но без изображения.

Я хотел (а) комбинировать оба. Кто-нибудь может мне помочь, пожалуйста!

+0

Вы хотите сохранить имя изображения или как BLOB? –

ответ

2

Я предполагаю, что у вас есть fullname и lname поля (столбцы) находятся в вашей таблице базы данных вместе с image1. Ваш Html

<form method = "POST" action = "image_upload_featured.php" enctype = "multipart/form-data"> 
    <label>Drag or click for image</label> 
     <div id="uploader" onclick="$('#photo').click()"> 
    <img src=""/> 
    </div> 
    <input type="file" name="image" id="photo"/> 
    <div id = "file_name"></div> 

    <input class = "w3-input w3-border" type = "text" name= "fullname" placeholder = "Fullname" style="margin-bottom: 15px;" required > 
    <input class = "w3-input w3-border" type = "text" name= "lname" placeholder = "Lastname" style="margin-bottom: 15px;" required > 
    <button type="submit" class = "btn btn-primary" name = "save"><span class = "glyphicon glyphicon-download"></span> Save Image</button> 
</form> 

PHP

<?php 
include('db/database_configuration.php'); 
if(ISSET($_POST['save'])){ 

    if($_FILES['image']['name'] == ""){ 
      echo '<script>alert("Please Select an Image")</script>'; 
      echo '<script>window.location = "add_featured_alumni.php"</script>'; 
    }else{ 
     $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); 
     $image_name = addslashes($_FILES['image']['name']); 
     $image_size = getimagesize($_FILES['image']['tmp_name']); 
     move_uploaded_file($_FILES["image"]["tmp_name"], "featured_image/". $_FILES["image"]["name"]); 
     $location = $_FILES["image"]["name"]; 
     //edit.....get input values 
     $fullname = $_POST['fullname']; 
     $lname = $_POST['lname']; 
     $stmt = $conn->prepare("INSERT INTO `tblfeatured` (image1,fullname,lname) VALUES(?,?,?)") or die(mysqli_error($conn)); 
     $stmt->bind_param("sss", $location,$fullname,$lname); //bind to param 
     //........................................ 

     if($stmt->execute()){ 
      $stmt->close(); 
      $conn->close(); 
      echo '<script>alert("Successfully Upload Image")</script>'; 
      echo '<script>window.location = "add_featured_alumni.php"</script>'; 
     }else{ 
      echo '<script>alert("Error")</script>'; 
     } 
    } 
} 
?> 

ПРИМЕЧАНИЕ: Это должно работать, кроме исключительных синтаксической ошибки. (Если ваш код ранее работал, то это также должно работать)
Ваша таблица DB должна быть примерно такой
| id | image1 | полное имя | lname |

+1

'bind_param (" s ", $ location, $ fullname, $ fullname)' вы забыли несколько '' 'и если OP хочет сохранить как BLOB, то это тоже будет другим. Однако здесь вы повторили '$ fullname'. –

+1

и 'mysqli_error()' требует аргумента 'mysqli_error ($ conn)' –

+1

Я заметил, что edit '(" sss ", $ location, $ fullname, $ fullname)' должно быть '(" sss ", $ location, $ fullname, $ lname) ' –