döngü ile $ _GET sonuçları

4 Cevap php

Ben böyle bir şey olsaydı:

?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

Bir HTML tabloya sonuçlarını döndürmek ve aynı zamanda bir SQL tablosuna eklemek için GET adlı döngü mümkün mü?

Ya da daha sonra her bir $_GET (yani qty 1 =1&partno 1 sonuna kadar rowid eklemek gerekir =ipod ...?)

Seyir için teşekkürler.

4 Cevap

Gerçi $_GET aracılığıyla döngü yapabilirsiniz. Bu sadece bir dizi var:

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

Eğer SQL sorguları yapmak için geçmesi zaman, tüm girdilerinin sterilize hatırlıyorum. Aynı şekilde sayfada değerlerini görüntülemek için. htmlentities HTML görüntülemek için sterilize etmek için kullanın. Veritabanı varsayarsak MySQL, SQL için mysql_real_escape_string kullanmaktır.

watch out! Birisi kolayca bu değiştirebilir ve teslim olabilir:

?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

note: "Birim" 102.99 ve 45.99 oldu, ama 0.99 ve 0.05 için değiştirildi, onlar büyük bir fiyata satışa oldular sanırım!

$ _GET .. Bir dizidir bu yüzden sadece foreach kullanarak üzerinde yineleme yapabilirsiniz

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

sen de yapabilirsin extract($_GET) hepsi değişken olarak yapmak için .. ama ben alışkanlık öneririz.

Eğer düşünmelisiniz db kaydetmek istiyorsanız mysql_real_escape_string($value).

Bir HTML tablosu yazdırmak için .. Eğer böyle bir şey istiyorsun?

$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>";
}

Bu yardımcı olur umarım.

Bkz FAQ How do I create arrays in a HTML <form>?

Yani davanın bir istek içinde:

?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

şeklinde bir dizi oluşturmak olacaktır:

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'
    )
)

Ama doğrulama olmadan bu değerleri kabul ve hatta gerçek bir düzen için kullanmak kalmayız.

Buna ek olarak GET is intended to be used for data retrieval only,

Özellikle, kongre ve baş yöntemleri alma dışında bir eyleme öneme sahip olmaması gerektiğini kurulmuştur.

Yan etkileri (sunucu üzerinde veri değişiklik) ile istekleri için POST kullanmanız gerekir.