我有一个问题,我在互联网上找不到任何解决方案。
所以我有大约20列的数据库。我从此数据库仅打印5列以进行如下预览:
<?php
$host = "localhost";
$user = "user";
$pass = "";
$db_name = "db_test";
//create connection
$connection = mysqli_connect($host, $user, $pass, $db_name);
//test if connection failed
if(mysqli_connect_errno()){
die("connection failed: "
. mysqli_connect_error()
. " (" . mysqli_connect_errno()
. ")");
}
//get results from database
$result = mysqli_query($connection,"SELECT id,first,sec,school,data FROM test");
$all_property = array(); //declare an array for saving property
//showing property
echo '<table class="data-table" border ="1">
<tr class="data-heading">'; //initialize table tag
while ($property = mysqli_fetch_field($result)) {
echo '<td>' . $property->name . '</td>'; //get field name for header
array_push($all_property, $property->name); //save those to array
}
echo '</tr>'; //end tr tag
//showing all data
while ($row = mysqli_fetch_array($result)) {
echo "<tr>";
foreach ($all_property as $item) {
echo '<td>' . $row[$item] . '</td>'; //get items using property value
}
echo '</tr>';
}
echo "</table>";
?>
表格打印后,我想按一下click来创建一个新页面,其中包含来自该特定ID的数据库中的所有记录。我可以在互联网上搜索,但找不到任何解决方案。任何人都可以帮助我吗?
最佳答案
我愿意对代码的结构进行一些更改以使其更简单。
解决方案是在锚点(a
)中嵌入某些内容,该锚点具有链接到下一页的查询字符串。这种性质的东西:
details.php?id=…
无论如何,这是一个解决方案:
$thead=array();
$tbody=array();
// Set Properties
$all_property = array('id','first','sec','school','data'); // ***
// Note: corrected an error which incorrectly imploded thead:
$thead=sprintf('<tr>%s</tr>',implode('',$all_property)); // implode & put into a proper row
// Get Data
while ($row = mysqli_fetch_array($result)) {
$tr=array();
foreach ($all_property as $item) {
// Here is a solution: Make id clickable
if($item=='id')
$tr[]=sprintf('<th><a href="details.php?id=%s">%s</a></th>',$item,$item);
else $tr[]=sprintf('<td>%s</td>');
}
$tbody[]=sprintf('<tr>%s</tr>',implode('',$tr));
}
并在PHP块之后的HTML中:
<table class="">
<thead>
<?php print $thead; ?>
</thead>
<tbody>
<?php print $tbody; ?>
<tbody>
</table>
请注意以下几点:
您不应该将逻辑放在文档的HTML部分中。在这里,我只是将数据放入一些变量中,以便在时间到时输出。它更清洁,更易于维护。
推入数组的推荐方法是使用
$array[]=…
表示法。如果您已经知道SQL查询的内容,则不知道为什么要读取列名称。但是,我已经离开了。
我还提供了适当的
th
元素和表格部分。那可能行得通...
关于javascript - 如何从可点击的行表中创建新页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42745374/