DB

2016-06-01 4 views
1

で使用可能なテーブルのドロップダウンを作成すると、このビットは(config.phpを使用して)DBに接続し、その後、以下のドロップダウンを作成します。DB

これは作成されたドロップダウンコードで、実際に動作させるために実行することができます。

<br> 
 
<br> The list box is here 
 
<select name=student value=''>Student Name</option> 
 
    <option value=1>John Deo</option> 
 
    <option value=2>Max Ruin</option> 
 
    <option value=3>Arnold</option> 
 
    <option value=4>Krish Star</option> 
 
    <option value=5>John Mike</option> 
 
    <option value=6>Alex John</option> 
 
    <option value=7>My John Rob</option> 
 
    <option value=8>Asruid</option> 
 
    <option value=9>Tes Qry</option> 
 
    <option value=10>Big John</option> 
 
    <option value=11>Ronald</option> 
 
    <option value=12>Recky</option> 
 
    <option value=13>Kty</option> 
 
    <option value=14>Bigy</option> 
 
    <option value=15>Tade Row</option> 
 
    <option value=16>Gimmy</option> 
 
    <option value=17>Tumyu</option> 
 
    <option value=18>Honny</option> 
 
    <option value=19>Tinny</option> 
 
    <option value=20>Jackly</option> 
 
    <option value=21>Babby John</option> 
 
    <option value=22>Reggid</option> 
 
    <option value=23>Herod</option> 
 
    <option value=24>Tiddy Now</option> 
 
    <option value=25>Giff Tow</option> 
 
    <option value=26>Crelea</option> 
 
    <option value=27>Big Nose</option> 
 
    <option value=28>Rojj Base</option> 
 
    <option value=29>Tess Played</option> 
 
    <option value=30>Reppy Red</option> 
 
    <option value=31>Marry Toeey</option> 
 
    <option value=32>Binn Rott</option> 
 
    <option value=33>Kenn Rein</option> 
 
    <option value=34>Gain Toe</option> 
 
    <option value=35>Rows Noump</option> 
 
</select> 
 
<br> 
 
<br>

私は何をしたいのドロップダウンを例show tables用DB内のすべてのテーブルが含まれていますように、この行$sql="SELECT name,id FROM student order by name";を変更です。 私はこれを簡単に行うことができますか?または別の方法を使用する必要がありますか?もし私が特定のテーブルだけを表示することができれば、それはまた良いでしょう。テーブルはTabで始まります。この

<br> 
 
<br> The list box is here with available tables 
 
<select name=student value=''>TableName</option> 
 
    <option value=1>Table1</option> 
 
    <option value=2>Table2</option> 
 
    <option value=3>Table3</option> 
 
</select> 
 
<br> 
 
<br>

EDIT1よう

これらの私は変更する必要があると思うラインです。しかし、これは私の問題 $sql="SHOW tables";

echo "<option value=$row[id]>$row[name]</option>";

+1

は、あなたが「番組表」を使用しようとしたことがありますか? –

+0

@KIKOソフトウェア私はショーのテーブルを試してみましたが、私のprolemは、私が欲しいものを抽出し、htmlコードでそれを置くためにPHPのコードです。私はそれをqestionで指定すべきでした。 – HattrickNZ

+0

これはあなたが持っているコードとまったく同じように動作します。テーブル名のみを取得します。 'foreach'ループでは、ドロップダウンの代わりに' var_dump($ row); 'を使ってクエリの結果を確認することができます。そうすれば、行の中にあるものを見つけることができます。 –

答えて

0

私はこれをテストし、それが私のサーバーを使用して働いています。 table_schema = 'yourDBname'はキーです。さもなければ何十枚ものランダムなテーブルを得ることができるからです。

select table_name from information_schema.tables where table_schema='yourDBname' 

これでクエリを置き換えて、同じ種類のドロップダウンを行うことができます。セキュリティ上の理由から、テーブルの名前を知ってもらいたいですか?

0

SHOW TABLESのいずれかを使用して、またはINFORMATION_SCHEMA.TABLESから選択して、特定のスキーマからテーブル名を取得できます。また、どちらの方法でも部分テーブル名でフィルタリングできます。

$stmt = $dbo->query("SHOW TABLES FROM your_schema LIKE 'Tab%'"); 

または

$stmt = $dbo->query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
        WHERE TABLE_SCHEMA='your_schema' AND TABLE_NAME LIKE 'Tab%'"); 

これらのいずれかがあなたに同じ結果を与える必要があります。

$stmtPDOStatementオブジェクトになります。あなたの<option>値のための単一の値としてテーブル名を取得するためにそのfetchColumnメソッドを使用することができます。このようにして、SHOW TABLESによって生成された奇妙な「列名」は、そのクエリを使用することに決定した場合に問題を引き起こしません。

echo '<select name="tables">'; 
while ($table_name = $stmt->fetchColumn()) { 
    echo "<option value=\"$table_name\">$table_name</option>"; 
} 
echo '</select>';