2017-12-10 1 views
0

Ich muss mehrere Bilder mit Anzeigename jede Zeile einfügen. Ich kann den Anzeigenamen nicht einfügen. Ich kann den PHP-Code nicht ändern. Es ist kein Problem, mehrere Bilder einzufügen. Das Problem tritt jedoch auf, wenn Sie versuchen, den Anzeigenamen mit Bildern einzufügen. PLZ Hilfe.Mehrere Bilder mit Titel einfügen

HTML

<form action="posting_ad_imagec.php" method="post" enctype="multipart/form-data"> 
Ad Title: <input type="text" id="ad_name" name="ad_name[]"/> 
<input type="file" id="files" name="files[]" multiple="multiple" /> 
<input type="submit" name="submit" value="Submit"> 
</form> 

PHP:

<?php 

    $dir='ad/data/img/'; 

    if(isset($_POST['submit'], $_FILES['files'])) { 

     $uploaded=array(); 
     $ad_names = $_POST["ad_name"]; 
     $sql = 'insert into `full texts` set `img_name` = ?, `img_type` = ?, `img_size` = ?, `ad_name` = ?'; 
     $stmt = $connection->prepare($sql); 


     if($stmt){ 

      $stmt->bind_param('ssss', $name, $type, $size, $ad_name); 

      foreach($_FILES['files']['name'] as $i => $name) { 
       if(!empty($_FILES['files']['tmp_name'][$i])) { 

        $name = $_FILES['files']['name'][$i]; 
        $size = $_FILES['files']['size'][$i]; 
        $type = $_FILES['files']['type'][$i]; 
        $tmp = $_FILES['files']['tmp_name'][$i]; 
        $ad_name = $ad_names[$i]; 


        if(is_uploaded_file($tmp)){ 
         $bytes = move_uploaded_file($tmp, $dir.$name); 
         if($bytes){ 
          $status = $stmt->execute(); 
          $uploaded[]=$status && $bytes ? $name : false; 
         } 
        } 
       } 
      } 
      if(!empty($uploaded)){ 
       $_SESSION['s']=sprintf("%d images successfully saved", count($uploaded)); 
       header('Location: posting_ad_image.php'); 
      } 
     } 
    } 
?> 
+0

Hey, zuerst überprüfe, ob du Werte in deinen $ ad_names erhältst. – divy3993

+1

Könnte versuchen: 'name =" ad_name [] "' -> 'name =" ad_name "' und $ ad_name = $ _POST ["ad_name"] '(singular statt plural) dann trash' $ ad_name = $ ad_names [ $ i]; ' – Ultimater

+0

@Ultimater Vielen Dank. Ihr Vorschlag hat mir geholfen, alle Bilder mit 'ad_name' auf einmal einzugeben. Aber jetzt kommt das Problem ** nur der erste Buchstabe von ad_name geht in Datenbank ein ** nicht vollständiger Name. –

Antwort

0

Schritt 1: Ändern name="ad_name[]" zu name="ad_name" (nicht mehr Klammern)
Schritt 2: Ändern $ad_names = $_POST["ad_name"]; zu $ad_name = $_POST["ad_name"] (Einzahl)
Schritt 3: Papierkorb $ad_name = $ad_names[$i]; (wird nicht mehr benötigt)