まず、実際に<form>
を設定することを忘れないでください。それらをまとめてください。
第二に、私はちょうどあなたの送信ボタンに同じ名前の属性を使用し、お勧めしたい:
name="table_name"
だから、次のようになります。
echo '<h2> Search Result: </h2>';
$searchSQL = "
SELECT DISTINCT table_name FROM information_schema.columns
WHERE LOWER(column_name) LIKE LOWER('%$search%') AND table_schema = 'university'
";
$result = $conn->query($searchSQL);
echo '<form method="POST" action="show_colums.php">'; // opening form tag
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$table_name = $row['table_name'];
echo "<input type='submit' name='table_name' value='$table_name' /> <br/>";
// ^don use the $table_name in the name attribute
}
echo '</form>'; // closing form tag
もすることを忘れないでくださいフォームタグにaction=""
属性を追加します。フォーム処理を行うPHPスクリプトを指してください。
show_columns.php
インサイド:この例では、ただ単に選択したボタンを処理することPHPファイルにDESCRIBE
を適用し、今show_columns.php
を使用
if(!empty($_POST['table_name'])) {
$table_name = $_POST['table_name']; // get input
$sql = "DESCRIBE {$table_name}"; // use DESCRIBE
$query = $conn->query($sql); // execute query
while($row = $query->fetch_assoc()) { // fetch rows
// do whatver you need to do, table or whatever you like
echo $row['Field']; // field name
}
}
編集:またはあなたがすることができ
echo '<h2> Search Result: </h2>';
$searchSQL = "
SELECT DISTINCT table_name FROM information_schema.columns
WHERE LOWER(column_name) LIKE LOWER(?) AND table_schema = 'university'
";
$stmt = $conn->prepare($searchSQL);
$search = '%' . $search . '%';
$stmt->bind_param('s', $search);
$stmt->execute();
$stmt->bind_result($table_name);
echo '<form method="POST" action="show_columns.php">';
while($stmt->fetch()) {
echo "<input type='submit' name='table_name' value='$table_name' /><br/>";
}
echo '</form>';
単にフォームタグを使用して、通常のフォームのように扱い、送信ボタンの値を取得してから、「DESCRIBE」を使用してください – Ghost