2016-11-15 12 views
1

私は店内目録システムを持っています。つまり、私は3つの支店を持っています。管理者がシステムにログインすると、そのブランチの場所が検出されます。私のコードの例は次のとおりです。店舗支店に応じてテーブル上の特定の接頭辞を選択してください

if ($_SESSION['user_role'] == 'Admin') { 
    $execLog = mysqli_query($connection, $queryLog); 

    if ($_SESSION['branch'] == 'BS') { 

     header("Location: ../admin"); 

     } elseif ($_SESSION['branch'] == 'TD') { 

      header("Location: ../admin"); 

     } elseif ($_SESSION['branch'] == 'FV') { 

      header("Location: ../admin"); 

     } 

各ブランチには、自分のデータベース上のテーブルの特定の接頭辞があります。 BSはbs_、TDはtd_、およびFV fv_である。さて、私の問題は、各管理者のテーブルをすべて調べることなく、データベース内の特定のテーブルにクエリを設定する方法です。

例えば私の分岐がBSであれば、私は、クエリになりたい:

SELECT * FROM bs_orders; 

そして、私の分岐がTDであれば、私は、クエリになりたい:どうすればよい

SELECT * FROM td_orders 

私はこれを達成する?

"SELECT * FROM " . strtolower($_SESSION['branch']) . "_orders"; 
+1

何単なる文字列の連結をやっについて:

は、このような変数に接頭辞を設定しますか?変数にプレフィックスを設定し、クエリに 'FROM $ prefix .'_ orders''を使用します。 –

+0

ありがとうございます。私はそれについて考えなかったことに驚いています。 – Odie

+0

喜んで助けてください。私はそれを答えに包んで、あなたがそれを承認できるようにします –

答えて

2

使用し、文字列の連結:

はとにかく、ここに私のconnectdb.phpコードのような

<?php 

$db['db_host'] = "localhost"; 
$db['db_user'] = "root"; 
$db['db_pass'] = ""; 
$db['db_name'] = "inventorydb"; 

foreach ($db as $key => $value) { 
define(strtoupper($key), $value); 
} 

$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 

if (!$connection) { 
    echo "Failed to connect to the database" . mysqli_errno($connection); 
} 

?> 
+0

$ sqlをエコーすると、 'SELECT * FROM bs .'_ orders''が表示されます。だから、 '$ prefix 'の代わりに' {$ prefix} 'を使った。今はうまくいきます。 – Odie

0

ものです。

$prefix= strtolower($_SESSION['branch']); 

とクエリの使用で

$sql = "SELECT * FROM $prefix.'_orders'" 
関連する問題