2015-02-07 3 views
-2

У меня есть форма, которая позволяет пользователю вставлять несколько данных в базу данных. Я пытался вставить их, но безрезультатно.Вставить несколько записей в базу данных

Ниже форма

<tr> 
<td> 
    <select title = "Please choose" name="menutype[]"> 
     <option value="-1" >--Select--</option> 
      <?php 
      $query = "SELECT * FROM MenuType"; 
      $result = $mysqli->query($query); 
      if ($result==false) { 
        die(mysqli_error($mysqli)); 
      } 

      while ($menutype = mysqli_fetch_array($result)) { 
       ?> 
       <option value="<?php echo $menutype['MenuTypeID'] ?>"><?php echo $menutype['MenuTypeName'] ?></option> 
       <?php 
      } 
      ?> 
</select> 
</td> 
<td><input type="text" name="name[]" /></td> 
<td><input type="file" name="picture[]" /></td> 
<td><textarea rows="4" cols="40" name="description[]"></textarea></td> 
<td><input type="text" name="price[]" value=""/></td> 
<td> 
    <select title="Please choose" name="status[]"> 
     <option value="-1" />--Select--</option> 
     <option value="Available" />Available</option> 
     <option value="Limited" />Limited</option> 
    </select> 
</td> 
</tr> 

Ниже приведен код PHP

$name = $_POST['name']; 
$description = $_POST['description']; 
$price = $_POST['price']; 
$status = $_POST['status']; 
$menutypeid = $_POST['menutype']; 

if(isset($_FILES['picture'])){ 
$name_array = $_FILES['picture']['name']; 
$tmp_name_array = $_FILES['picture']['name']; 

for($i = 0; $i < count($tmp_name_array); $i++){ 
    if(move_uploaded_file($tmp_name_array[$i], "images/menu/".$name_array[$i])){ 
     echo $name_array[$i]." upload is complete<br>"; 
    } else { 
     echo "move_uploaded_file function failed for ".$name_array[$i]. "<br>"; 
    } 
} 

$imageup = $tmp_name_array; // save the whole url address of the uploaded file into variable 
foreach ($name as $value){ 
$query = "INSERT INTO menu (MenuID, MenuName, MenuPicture, MenuDescription, MenuPrice, MenuStatus, MenuTypeID) 
       VALUES ('', '$name', '$imageup', '$description', '$price', '$status', '$menutypeid')"; 

    $mysqli->query($query) or die(mysqli_error($mysqli)); 
    //header('Location:view_menu_for_manager.php');}} 
?> 

У меня также есть проблемы с загрузкой нескольких файлов/изображений. Помощь

отредактированный запрос

foreach ($name as $value){ 
$query = "INSERT INTO menu (MenuName, MenuPicture, MenuDescription, MenuPrice, MenuStatus, MenuTypeID) 
       VALUES ('$name', '$imageup', '$description', '$price', '$status', '$menutypeid')"; 
+0

Вставить в меню (menuname) значения ('$ name'), как это, и, пожалуйста, удалите свои старые комментарии .. –

ответ

0

попробовать, как этот

<?php  
$name = $_POST['name']; 
$description = $_POST['description']; 
$price = $_POST['price']; 
$status = $_POST['status']; 
$menutypeid = $_POST['menutype']; 

$data= array('name'=>$name,     
       'description'=>$description, 
       'price'=>$price, 
       'menutypeid'=>$status , 
       'status'=>$menutypeid); 
if(isset($_FILES['picture'])){ 
$name_array = $_FILES['picture']['name']; 
$tmp_name_array = $_FILES['picture']['name']; 

for($i = 0; $i < count($tmp_name_array); $i++){ 
    if(move_uploaded_file($tmp_name_array[$i], "images/menu/".$name_array[$i])){ 
     echo $name_array[$i]." upload is complete<br>"; 
    } else { 
     echo "move_uploaded_file function failed for ".$name_array[$i]. "<br>"; 
    } 
} 

$imageup = $tmp_name_array; // save the whole url address of the uploaded file into variable 
$i=0; 
foreach($data as $value){ 
$name=$value[$i]['name']; 
$description=$value[$i]['description']; 
$price=$value[$i]['price']; 
$status=$value[$i]['status']; 
$menutypeid=$value[$i]['menutypeid']; 
$query = "INSERT INTO menu (MenuName, MenuPicture, MenuDescription, MenuPrice, MenuStatus, MenuTypeID) 
       VALUES ('$name', '$imageup', '$description', '$price', '$status', '$menutypeid')"; 

    $mysqli->query($query) or die(mysqli_error($mysqli)); 
    //header('Location:view_menu_for_manager.php');} 
} 
?> 

Удалить Еогеасп, потому что вы получаете только одну строку из HTML формы. Я думаю, что нет необходимости в foreach. Повторяйте каждую переменную перед вставкой в ​​базу данных, чтобы убедиться, что вы получаете значение corrct или нет. Пожалуйста, проверьте эту ссылку. Link

+0

Форма выглядит следующим образом -> http://i.imgur.com/TBHg6ul.png do мне нужно удалить []? – Fatimah

+0

У меня есть неопределенное имя индекса, описание и т. Д. (После строки 'foreach ($ data as $ value) {' – Fatimah

Смежные вопросы