Получение последнего значения из многомерного массива вне цикла foreach - PullRequest
0 голосов
/ 08 мая 2019

Итак, я обновляю таблицу базы данных и получаю массив из входных данных, поскольку существует несколько значений (id [], цена [], product [], описание [] и т. Д.), Но я хочу получитьПОСЛЕДНЕЕ значение цены [] вне цикла foreach Я использую этот цикл foreach, который работает для обновления таблицы MAIN db

foreach ($_POST['id'] as $key => $id) {
    $array1 = $_POST['product'][$key];
    $array2 = $_POST['priceunit'][$key];
    $array3 = $_POST['quantity'][$key];
    $array4 = $_POST['sum'][$key];
    $array5 = $_POST['totalprice'][$key];
    $query = $link -> prepare("UPDATE table SET product = ?, priceunit = ?, quantity = ?, sum = ?, totalprice = ? WHERE id = ?");
    $query -> bind_param('sddddi',$array1,$array2,$array3,$array4,$array5,$id);
    $result = $query-> execute();
    $query -> close();
}

, и теперь я хочу получить ПОСЛЕДНЕЕ ЗНАЧЕНИЕ от $ array5, чтобы я мог сделать это внецикл

$sql = $link -> prepare("UPDATE table2 SET price = ? WHERE id = ?;");
$sql -> bind_param("ds",

    $total,  <- array5 last value
    $_GET['id']);

$query = $sql -> execute();
$sql -> close();

это вход

<tbody>
<?php
        $sql = $link -> prepare("SELECT * FROM table WHERE id_proposta = ?;");
        $sql -> bind_param('s',
             $_GET['id']);
        $sql -> execute();
        $result = $sql -> get_result();
        for ($i = 0; $r = $result -> fetch_assoc(); $i++){ ?>
        <tr>                                
            <input type="hidden" value="<?php echo $r['id']; ?>" name="id[]">                               
            <td><textarea class="form-control" name="product[]" rows="3" id="textareaAutosize" data-plugin-textarea-autosize><?php echo $r['product']; ?></textarea></td>       
            <td><input type="text" class="priceunit" value="<?php echo $r['priceunit']; ?>" name="priceunit[]"></td>                                                                
            <td><input type="text" class="qtd" value="<?php echo $r['quantity']; ?>" name="quantity[]"></td>
            <td><input type="text" class="sum" value="<?php echo $r['sum']; ?>" name="sum[]" readonly></td>
            <td><input type="text" class="totalprice" value="<?php echo $r['totalprice']; ?>" name="totalprice[]" readonly></td>                                                            
        </tr>
<?php } $sql -> close(); ?>
</tbody>

Спасибо.

1 Ответ

2 голосов
/ 08 мая 2019

Поскольку вы делаете это в цикле:

$array5 = $_POST['totalprice'][$key];

Затем, после завершения цикла, $array5 будет последним $_POST['totalprice'].Так что просто используйте это:

$sql->bind_param("ds",    
    $array5,
    $_GET['id']);

Или даже это, если вы не используете все эти временные переменные:

$sql->bind_param("ds",    
    $_POST['totalprice'][$key],
    $_GET['id']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...