Intereting Posts
Facebook API: лучший способ получить, поделиться, подсчитать количество сообщений для страницы / группы? Как выполнить интеграционное тестирование в PHP? Как получить значения выбора из нескольких строк в php Выход из отсортированного массива с SimpleXML, xsort и xpath в PHP Проверьте, нет ли переменной пустой Самый простой способ активировать PHP и MySQL на Mac OS 10.6 (Snow Leopard), 10.7 (Lion), 10.8 (Mountain Lion)? symfony doctrine admin generator сортировать по виртуальным столбцам если Row1 = значение 1, обновите другие строки __toString () не должен генерировать ошибку исключения при использовании строки Являются ли Ioncube закодированными файлами без ограничений? Загрузить загрузку файлов Как обрабатывать пользовательские заголовки с запросом на предварительный рейс CORS? AJAX – CodeIgniter LSA – Скрытый семантический анализ – как закодировать его в PHP? Запросы POST от плагина grunt-connect-proxy не содержат данных Как отправить HTTP-метод get с заголовками, используя CURL

как выполнить цикл значений GET в php

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

Я все еще использую get, чтобы я мог видеть, как выглядят данные, я поменяю его, чтобы опубликовать его позже. Вот как выглядит URL-адрес, когда я совершаю покупку всех продуктов, добавленных в корзину: http: //localhost/pos/php/checkout.php? Ids = 2; & qoh = 12; & qbuys = & ids = 6; & QOH = 2304; & qbuys = 304 & DS = 4; & QOH = 699; & qbuys = 99

Это код, который я использую для совершения только одного продукта, он не работает, когда у меня было что-то похожее в приведенном выше URL-адресе:

<?php $id=$_GET['ids']; $qtyhnd=$_GET['qoh']; $qtytbuy=$_GET['qbuys']; $left=$qtyhnd-$qtytbuy; if($qtyhnd>=$qtytbuy){ $update=query_database("UPDATE prod_table SET QTYHAND='$left' WHERE PID='$id'", "onstor", $link); } ?> 

Прошу прокомментировать, если вам нужна дополнительная информация, спасибо

Related of "как выполнить цикл значений GET в php"

У вас есть точки с запятой после некоторых значений, возможно, вам нужно передать только целое число, это qoh и qbuys . Помимо этого вы должны использовать mysql_real_escape_string () и (int) перед целыми значениями для предотвращения SQL-инъекции, например:

 $int = (int)$_GET['price']; $string = $_GET['val']; mysql_real_escape_string($string); 

Также, если вы хотите передать несколько значений, вы должны использовать для них массив:

HTML

 <input type="hidden" name="ids[]" value="1"> <input type="hidden" name="ids[]" value="2"> <input type="hidden" name="ids[]" value="3"> 

PHP

 $ids = $_GET['ids']; foreach($ids as $id) { $sql = 'UPDATE table SET field=? WHERE id='.(int)$id; .... } 

Либо преобразуйте параметры в параметры массива (например, qoh[] ), а затем повторите параллель или вручную проанализируйте строку запроса.

Вы можете использовать $_SERVER['QUERY_STRING'] с циклом foreach следующим образом:

 foreach($_SERVER['QUERY_STRING'] as $key => $value){ echo "$key - $value <br />"; } 

Таким образом вы можете получить значения GET и использовать в своем запросе базы данных аналогичным образом с использованием цикла foreach .

Я предполагаю, что PID в prod_table имеет целочисленный тип. Не содержит переменную $ id "2;" вместо 2 ? В любом случае, какая у вас ошибка?

У вас есть URL-адрес, например http://localhost/pos/php/checkout.php?ids[]=2&qoh[]=12&qbuys[]=&ids[]=6&qoh[]=2304&qbuys[]=304&ids[]=4&qoh[]=699&qbuys[]=99... с использованием структуры HTML, такой как infinity .

Затем:

 foreach ($_GET['ids'] as $k => $v) { $id = (int)$v; $qtyhnd = (int)$_GET['qoh'][$k]; $qtytbuy = (int)$_GET['qbuys'][$k]; $left = $qtyhnd - $qtytbuy; if ($qtyhnd >= $qtytbuy) { $update = query_database( "UPDATE prod_table SET QTYHAND='$left' WHERE PID='$id'", "onstor", $link); } } 

И если тип базы данных QTYHAND и PIDint , исключите одинарные кавычки ( ' ) из ваших SQL-запросов.