перебирать результаты $ _GET

Если бы у меня было что-то вроде этого:

?FormSub=Submit&qty=1&partno=ipod&notes=apple&unitprice=102.99&rowid=1&qty=2&partno=Ear+Buds&notes=Headphones&unitprice=45.99&rowid=2 

Возможно ли выполнить цикл через GET, чтобы возвращать результаты в таблицу HTML, а также добавлять в таблицу SQL?

Или мне нужно добавить rowid к концу каждого $_GET (т.е. qty 1 =1&partno 1 =ipod …)?

Спасибо, что посмотрели.

Однако вы можете прокручивать $_GET . Это всего лишь массив:

 foreach ($_GET as $key => $value) { } 

Когда вы переходите к своим SQL-запросам, не забудьте очистить все ваши входы. Аналогично для отображения значений на странице. Используйте htmlentities для дезинфекции для отображения HTML. Предполагая, что ваша база данных – это MySQL, используйте mysql_real_escape_string для SQL.

$ _GET – массив, поэтому вы можете просто перебирать его с помощью foreach

 foreach($_GET as $query_string_variable => $value) { echo "$query_string_variable = $value <Br />"; } 

вы также можете сделать extract($_GET) чтобы сделать все из них переменной. но я не предложу его.

Если вы хотите сохранить его в db, вы должны подумать о mysql_real_escape_string($value) .

Чтобы напечатать таблицу HTML .. вам нужно что-то подобное?

 $count = count($_GET); if($count > 0) { echo "<table>"; foreach($_GET as $query_string_variable => $value) { echo "<tr><td>$query_string_variable</td><td>$value</td></tr>" } echo "</table>"; } 

надеюсь это поможет.

осторожно! кто-то может легко изменить это и отправить:

 ?FormSub=Submit&qty=1&partno=ipod&notes=apple&unitprice=0.99&rowid=1&qty=2&partno=Ear+Buds&notes=Headphones&unitprice=0.05&rowid=2 

примечание: «unitprice» был 102.99 и 45.99, но были изменены на 0.99 и 0.05, я предполагаю, что они продаются сейчас по отличной цене!

См. FAQ Как создать массивы в HTML <form> ?

Поэтому в вашем случае запрос:

 ?FormSub=Submit&qty[]=1&partno[]=ipod&notes[]=apple&unitprice[]=102.99&rowid[]=1&qty[]=2&partno[]=Ear+Buds&notes[]=Headphones&unitprice[]=45.99&rowid[]=2 

создаст массив формы:

 array( 'FormSub' => 'Submit', 'qty' => array( 0 => '1', 1 => '2' ), 'partno' => array( 0 => 'ipod', 1 => 'Ear Buds' ), 'notes' => array( 0 => 'apple', 1 => 'Headphones' ), 'unitprice' => array( 0 => '102.99', 1 => '45.99' ), 'rowid' => array( 0 => '1', 1 => '2' ) ) 

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

Кроме того, GET предназначен для использования только для поиска данных :

В частности, была установлена ​​конвенция о том, что методы GET и HEAD НЕ ДОЛЖНЫ иметь значение принятия иного действия, чем поиск.

Для запросов с побочными эффектами (изменение данных на сервере) вы должны использовать POST.