PHPとGETパラメータを介してdbテーブル名と列名を渡す可能性を探しています。
次の構造を持つデータ グリッドがあります: table_name1.column1、table_name2.column1、table_name2.column1。
これらのパラメーターが必要なグリッドの検索機能があります。
URL " ?table_name1.column1=22
" から $_GET のみを取得していますtable_name1_column1=22
どのように解決しますか?
これは、PHP の文書化された機能です。これは基本的に、PHP がドットを含む変数名を持つことができないためです。
$x.y = 1 // is an invalid variable name
php の serialize 関数を使用して、テキスト「table_name1.column1」を URL に渡すことができます。しかし、そのためには、結果を得るためにいくつかのコーディングを行う必要があります。以下に、使用できるコードを示します。
Page1.php
<?php
$test = serialize('table_name1.column1=11::table_name2.column2=22');
?>
<a href='Page2.php?qs=<?php echo $test?>'>test</a>
この $test を使用して、クエリ文字列として渡します。上記の例では、アンカー タグのクリックを渡しています。
Page2.php
次のコードを使用して、クエリ文字列をシリアル化解除し、値を使用します。
<?php
$test2 = unserialize($_GET['qs']);
$ex = explode('::',$test2);
$new_arr = array();
foreach($ex as $val)
{
$ex2 = explode('=',$val);
$new_arr[$ex2[0]] = $ex2[1];
}
echo $new_arr['table_name1.column1']; //print 11
echo $new_arr['table_name2.column2']; //print 22
?>
これがあなたを助けることを願っています:)
各パラメータを で区切る必要があります&
。
そう:?table=table_name1&column=column1