2013-05-31 3 views
3

Привет всем Я пытаюсь изменить приведенный ниже код, чтобы показать, что если клиент выбирает несколько продуктов в форме, создаст другой запрос MySQL для каждого выбранного продукта.PHP данные формы для нескольких записей MySQL

Довольно конечно, мне нужен какой-то для каждого цикла, чтобы он работал, но понятия не имею.

Любая помощь была бы принята с благодарностью!

Форма Код:

<input type="checkbox" name="TG01" value="TG01">China Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG01" value="TG02">Berlin Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG03" value="TG03">France Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG04" value="TG04">Thailand Travel Guide - $45.00<br/> 

PHP код:

<?php 
include("config.php"); 
$con=mysqli_connect("host","user","pass","somedb"); 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$qtychina = $_POST["china_travel_guide"]; 
$qtyberlin = $_POST['berlin_travel_guide']; 
$qtyfrance = $_POST['france_travel_guide']; 
$qtythailand = $_POST['thailand_travel_guide']; 

$china = $_POST["TG01"]; 
$berlin = $_POST['TG02']; 
$france = $_POST['TG03']; 
$thailand = $_POST['TG04']; 

$sql="INSERT INTO ORDER_TBL (TRANSACTION_ID, CUSTOMER_ID, PRODUCT_ID, QUANTITY) 
VALUES ('','$_SESSION[user]','$china','$qtychina')"; 

if (!mysqli_query($con,$sql)) 
{ 
die('Error: ' . mysqli_error($con)); 

exit; 
} 

echo "Congratulations your order has been processed!"; 

?> 
+0

Пожалуйста, измените имя дубликата чек-бокс (TG01) .. :) –

ответ

2

Имя ваши элементы формы TG[], PHP будет интерпретировать это как массив значений, то вы можете цикл над ними, как так :

foreach ($_POST['TG'] as $country) { 

    //$country will hold the value of the current checkbox. 

} 
+0

Спасибо, любой шанс, что вы могли бы уточнить код MySQL для этого? – cs91

+0

@ cs91: Это цикл, вы готовите запрос снаружи, привязываете параметры к нему внутри, а затем выполняете (опять же, внутри). Внутри цикла, '$ country' будет принимать каждую страну для каждой итерации. Для получения дополнительной информации перейдите к руководству по PHP. Никто здесь не напишет ваш проект для вас, мы поможем вам, когда вы застрянете. –

0
$data = array(); 
$data[0]['c'] = $_POST["china_travel_guide"]; 
$data[1]['c'] = $_POST['berlin_travel_guide']; 
$data[2]['c'] = $_POST['france_travel_guide']; 
$data[3]['c'] = $_POST['thailand_travel_guide']; 

$data[0]['t'] = $_POST["TG01"]; 
$data[1]['t'] = $_POST['TG02']; 
$data[2]['t'] = $_POST['TG03']; 
$data[3]['t'] = $_POST['TG04']; 
$i = 0; 
while (count($data) < $i) { 

    $sql="INSERT INTO ORDER_TBL (TRANSACTION_ID, CUSTOMER_ID, PRODUCT_ID, QUANTITY) 
VALUES ('','$_SESSION[user]','$data[$i][c]','$data[$i][t]')"; 
$i++;    
} 
0

Форма Код:

<input type="checkbox" name="TG[]" value="TG01">China Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG[]" value="TG02">Berlin Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG[]" value="TG03">France Travel Guide - $45.00<br/> 
<input type="checkbox" name="TG[]" value="TG04">Thailand Travel Guide - $45.00<br/> 

PHP код:

if(!empty($_POST['TG'])){ 
foreach($_POST['TG'] as $country){ 
    $sql="INSERT INTO ORDER_TBL (TRANSACTION_ID, CUSTOMER_ID, PRODUCT_ID, QUANTITY) 
    VALUES ('','$_SESSION[user]','$country','$qty')"; 

    if (!mysqli_query($con,$sql)) 
    { 
    die('Error: ' . mysqli_error($con)); 

    exit; 
    } 
} 
} 
Смежные вопросы