Ortak bir önek ile sıralı değişkenlere $ _POST dizi elemanları Çekme

2 Cevap php

Ben her satır bir onay kutusu sahip olduğu bir görüntülenen HTML tablosundan (bu durumda) 3 satır seçerek kaynaklanan bir $ _POST dizi var. Kimlikleri her satır için benzersiz tanımlayıcılardır.

Array
(
    [checkbox] => Array
        (
            [0] => 001403166
            [1] => 001407509
            [2] => 001407541
        )
)

Ben geri dönmek ve (örneğin, silme, vb) işlemek için mysql tam satır çekme böylece değişkenlerin içine kimliklerini toplamak istiyorum - gibi bir şey ~

$var1 = 001403166
$var2 = 001407509
$var3 = 001407541

Ben bu konuda bilgi bulabilirsiniz böylece denir bile bu ne (sıradışı) yapmak için nasıl bir ipucu yok ya. Herhangi bir yardım için teşekkür ederiz!

2 Cevap

extract fonksiyonu soruyorsun hemen hemen ne yapmalıyım:

int extract  ( array $var_array  [, int $extract_type = EXTR_OVERWRITE  [, string $prefix  ]] )

Import variables from an array into the current symbol table.


Something like this, I suppose, should do the trick :

extract($_POST['checkbox'], EXTR_PREFIX_ALL , 'var');

Sadece şey değişkenler denilen alırsınız olduğunu $var_0, $var_1, $var_2:

  • 0 itibaren sayılan ve ikinci 1, in anahtarları olarak $_POST['checkbox'] 0 başlatılmaz.
  • ile bir '_' $var ile sayı arasında.


Note : before using extract, you should make sure $_POST['checkbox'] only contains "clean" data !

Ayrıca tek bir dize içine bu dizi patlamasını ve her satır için tek bir istek çalıştıran kısmak için veritabanlarını native IN() function kullanmayı düşünebilirsiniz.

$uniqueIDs = array(1111,1222,1333);
$idString  = implode(",",$uniqueIDs);

$query = "SELECT id, col1, col2 
          FROM tableName
          WHERE id IN ({$idString})";

Bu sorgu olduğu ortaya çıkacaktır:

SELECT id, col1, col2 
FROM tableName 
WHERE id IN (1111,1222,1333)

Bu listedeki bulunan bir kimliği olan satırları seçme.