2014-04-01 3 views
-1

Здесь я пытаюсь вставить данные снова в новую таблицу базы данных (с указанием количества клиентов &). Значения $grocery_id и $grocery_item - это выборка из базы данных. $customername, $customermobile, $groqty значения будут введены пользователем в соответствующем текстовом поле.За пределами запроса цикла foreach не работает должным образом

При выполнении этого кода ($groceryid, $groceryitem) -> Эти два столбца всегда сохраняют последние значения строк. Потому что я поставил запрос вне цикла foreach. Вот моя проблема. Если я поставлю запрос внутри foreach, он отлично работает. Но значения количества не работают должным образом. Итак, как я могу выполнить запрос правильно (вне цикла foreach)?

<?php 
    if(isset($_POST['submit'])) 
    { 
     $grocery_id = $rowid; 
     $grocery_item = $rowsitem; 
     $customername = $_POST['customername']; 
     $customermobile = $_POST['customermobile']; 
     $groqty = $_POST['groceryquantity']; 

     for($i = 0; $i < sizeof($groqty); $i++) 
     { 
      $groqtys = $groqty[$i]; 

      foreach($grocery_id as $key => $index_id) 
      {   

      }  

      $sql = "INSERT INTO ".customer_order." SET grocery_id = '$index_id' , grocery_item = '$grocery_item[$key]', customername = '$customername', customermobile = '$customermobile', quantity = '$groqtys' "; 
      mysql_query($sql,$CN); 
      $response = asort_form_ok("Your order successfully submitted. We will deliver you soon."); 
     } 
    } 
?> 

enter image description here

+0

Поместите оба внутри цикла 'foreach'? '$ Groqtys' и ваш запрос. – iamsleepy

+0

Что вы ожидаете, когда они находятся снаружи? –

+0

@iamsleepy: Я пробовал. Но количество значений хранится несколько раз ??? – Karuppiah

ответ

1

Вы можете просто использовать один foreach цикл рассматривает индексные значения $grocery_id и $groqty одинаковы.

Try:

<?php 

if (isset($_POST['submit'])) 
    { 
    $grocery_id = $rowid; 
    $grocery_item = $rowsitem; 

    // sanitizing your values 
    $customername = mysql_real_escape_string($_POST['customername']); 
    $customermobile = mysql_real_escape_string($_POST['customermobile']); 
    $groqty = array_map('mysql_real_escape_string', $_POST['groceryquantity']); 
    foreach($grocery_id as $key => $index_id) 
     { 
     $sql = "INSERT INTO " . customer_order . " SET grocery_id = '$index_id' , grocery_item = '$grocery_item[$key]', customername = '$customername', customermobile = '$customermobile', quantity = '$groqty[$key]' "; 
     mysql_query($sql, $CN); 
     $response = asort_form_ok("Your order successfully submitted. We will deliver you soon."); 
     } 

    } 

?> 

Также обратите внимание:

Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+0

, но количество полей столбцов не хранится в db? '$ groqtys [$ ключ]'? – Karuppiah

+0

превосходный. он работает спасибо – Karuppiah

+0

@Learner Добро пожаловать –

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