2016-03-23 11 views
0

配列PDO:それはので、私は、私が想定していた更新私はこのコードで働いていた

<div class="chuteAudit"> 
     <div> 
      <input type="hidden" name="sortId[]" value="<?php echo $name['sort_id']; ?>" > 
      <input type="text" name="sortName[]" value="<?php echo $name['sort']; ?>" > 
      <select name="sortType[]" > 
            <optgroup label="<?php echo $name['shipping_sort'] ?>"> 
             <option value="amzl[]">AMZL</option> 
             <option value="other[]">Other</option> 
            </optgroup> 
     </select> 
      <select name="location[]" > 
            <option value=""><?php echo $name['section'] ?></option> 
            <option value="chutes">Chutes</option> 
            <option value="spine">Spine</option> 
            <option value="RMspine">Royal Mail spine</option> 
            <option value="RMchutes">Royal Mail chutes</option> 
            <option value="exceptions">Exceptions</option> 
            <option value="teamLift">Team lift</option> 
      </select> 
      <select name="active[]" > 
            <option value=""><?php echo $name['active'] ?></option> 
            <option value="yes">Yes</option> 
            <option value="no">No</option> 
      </select> 
     </div> 

     </div> 

余分な値

$sortId = $_POST['sortId']; 
    $sortName = $_POST['sortName']; 
    $sortType = $_POST['sortType']; 
    $location = $_POST['location']; 
    $active = $_POST['active']; 

    $sql = "UPDATE `sorts` SET `sort` = :sort, `shipping_sort` = :sortType 
    WHERE `sort_id` = :sort_id"; 

    $stmt = $db->prepare($sql); 
    $stmt->bindParam(':sort', $sort); 
    $stmt->bindParam(':sort_id', $sort_id); 
    $stmt->bindParam(':sortType', $sortType); 

    $db->beginTransaction(); 

    foreach($sortName as $i => $sort) 
    { 
     $sort_id = $sortId[$i]; 
     $stmt->execute(); 
    } 
    $db->commit(); 

HTMLを追加するために進めなければならないよう

$sortId = $_POST['sortId']; 
$sortName = $_POST['sortName']; 
$sortType = $_POST['sortType']; 
$location = $_POST['location']; 
$active = $_POST['active']; 

$sql = "UPDATE `sorts` SET `sort` = :sort 
WHERE `sort_id` = :sort_id"; 

$stmt = $db->prepare($sql); 
$stmt->bindParam(':sort', $sort); 
$stmt->bindParam(':sort_id', $sort_id); 

$db->beginTransaction(); 

foreach($sortName as $i => $sort) 
{ 
    $sort_id = $sortId[$i]; 
    $stmt->execute(); 
} 
$db->commit(); 

それは動作しますこれはすでに機能しているものに追加するだけなので、これはうまくいくだろうが、それは私が元々考えていたほど単純ではない現在、エラーメッセージが表示されていますNotice: Array to string conversion追加したコードに関連していますが、間違っていることがわかりません。

答えて

1

sortType[]の形式では、$sortTypeが配列になります。

あなたがここに配列をバインド:あなたがバインドするために必要なもの

$stmt->bindParam(':sortType', $sortType); //$sortType is an array 

はより

$stmt->bindParam(':sortType', $sort_type); 

のようなもので、その後、あなたはを反復処理する方法に

foreach($sortName as $i => $sort) 
{ 
    $sort_id = $sortId[$i]; 
    $sort_type = $sortType[$i]; 
    $stmt->execute(); 
} 

似をforeachのために追加ソートタイプを反復します。

+0

ああもちろん、ありがとう、私はそれが私を可能にする答えを受け入れるよ。 –

関連する問題