我有代码进行搜索。但搜索结果不在同一张表中。所有搜索结果都显示在不同的表格中。如何让它们出现在一个表格中?
<?php if(isset($_POST['submit']))
{
if(empty($_POST['word'])){
echo "<center>Title do not match. Please insert the correct title.</center>";}
else {
if(isset($_POST['word'])&& !empty($_POST['word']))
{
require 'config.php';
$word = $_POST['word'];
$query="SELECT * FROM data WHERE word LIKE '%" . $word . "%'";
$sql = $conn->query($query); ?>
<?php if(!$sql)
{
echo "<center>No Record</center>";
}
?>
<table align="center" border="0" >
<tr>
<td width="900">
<?php while($row = $sql->fetch_assoc()){
$dataID = $row['dataID'];
?>
<?php if($sql ==true){?>
<table class="table table-bordered table-hover table-striped">
<tr>
<td width="258" align="center" class="style5">TITLE</td>
<td width="170" align="center" class="style5">MENTION</td>
</tr>
<tr>
<td style="text-transform:uppercase" align="center"> <a href="admindisplay.php?id=<?php echo $row{'dataID'}?>"> <span style="text-transform:uppercase"><?php echo $row{'word'};?></span> </a></td>
<td style="text-transform:uppercase" align="center"><span style="text-transform:uppercase"><?php echo $row{'mention'};?></span></td>
</tr>
<?php }}} ?>re
答案 0 :(得分:1)
我们从哪里开始?
1。)尝试在html中避免样式化。它不是禁止的,但是当你使用CSS时,你的全局风格会更好。 http://www.w3schools.com/css/
例如:想象一下这条规则:
<td style="text-transform:uppercase" align="center"> <a href="admindisplay.php?id=<?php echo $row['dataID']?>"> <span style="text-transform:uppercase"><?php echo $row{'word']; ?></span> </a></td>
也可能是:
<td>
<a href="admindisplay.php?id=<?php echo $row['dataID']; ?>">
<?php echo $row['word'];?>
</a>
</td>
2.)尝试缩进。使用IDE(记事本具有一些额外的突出显示功能和良好的缩进。通过结构化和整齐地放置括号“[] {}和()”,您可以使代码更具可读性,并且更容易调试您自己的代码。
3。)使用SQL时,您的输入应该总是被转义。也许我错了,你有一个DB类为你做这个。虽然,你应该始终注意这一点:这可能会阻止SQL注入,并可能有一天保护你的生命(或你的工作)。
转义:让您的查询安全,让它只做您想要它做的事情。 SQL INJECTION:向INPUT添加恶意字符和代码,以便QUERY执行除您想要的其他操作。
4。)尝试对你正在做的事情或你想要达到的目标进行构建。
<?php
Class DoSearch()
{
protected $search_string;
public function __construct()
{
if(!$this->verify())
return $this->__html('<center>Title do not match. Please insert the correct title.</center>');
$this->search()
}
public function verify()
{
if(isset($_POST['word']))
return false;
if(empty($_POST['word']))
return false;
global $conn;
$this->search_string = $conn->escape($_POST['word']);
return true;
}
public function search()
{
global $conn;
$query = "SELECT * FROM data WHERE word LIKE '%" . $this->search_string . "%'";
$sql = $conn->query($query);
if(!$sql)
return $this->__html('<center>No Record</center>');
$table = array();
$i = 0;
$tableHtml = '
<table class="table table-bordered table-hover table-striped">
<tr>
<th width="258" align="center" class="style5">TITLE</th>
<th width="170" align="center" class="style5">MENTION</th>
</tr>';
while($row = $sql->fetch_assoc())
{
$tableHtml .= '
<tr>
<td style="text-transform:uppercase" align="center"> <a href="admindisplay.php?id='.$row['dataID'].'"> <span style="text-transform:uppercase">'.$row['word'].'</span> </a></td>
<td style="text-transform:uppercase" align="center"><span style="text-transform:uppercase">'. $row['mention'].'</span></td>
</tr>
';
}
$tableHtml .= '
</table>
';
return $this->__html($tableHtml);
}
public function __html($msg)
{
echo $msg;
}
}
require_once 'config.php';
$search = new DoSearch();
答案 1 :(得分:0)
将表格代码移到循环之外,每次循环时只创建一个新行。每次循环时都在创建一个新表。
<table class="table table-bordered table-hover table-striped">
<tr>
<td width="258" align="center" class="style5">TITLE</td>
<td width="170" align="center" class="style5">MENTION</td>
</tr>
<?php while($row = $sql->fetch_assoc()){
$dataID = $row['dataID'];
?>
<?php if($sql ==true){?>
<tr>
<td style="text-transform:uppercase" align="center"> <a href="admindisplay.php?id=<?php echo $row{'dataID'}?>"> <span style="text-transform:uppercase"><?php echo $row{'word'};?></span> </a></td>
<td style="text-transform:uppercase" align="center"><span style="text-transform:uppercase"><?php echo $row{'mention'};?></span></td>
</tr>
<?php }}} ?>
答案 2 :(得分:0)
每次循环运行时都不要创建表。简单。
更新代码
multiprocessing.Pool().*map*
答案 3 :(得分:0)
如果仅在(未格式化的)表中发布结果,只需使用此函数:
function show_in_table($arr)
{
$count = count($arr);
$output = "";
if($count>0)
{
reset($arr);
$num = count(current($arr));
$output.= '<table cellpadding="0" cellspacing="0">'."\n";
$output.="<tr>\n";
foreach(current($arr) as $key => $value)
{
$output.="<th>";
$output.=$key." ";
$output.="</th>\n";
}
$output.="</tr>\n";
while ($curr_row = current($arr))
{
$output.="<tr>\n";
$col = 1;
while (false !== ($curr_field = current($curr_row)))
{
$output.="<td>";
$output.=$curr_field." ";
$output.="</td>\n";
next($curr_row);
$col++;
}
while($col <= $num)
{
$output.="<td> </td>\n";
$col++;
}
$output.="</tr>\n";
next($arr);
}
$output.="</table>\n";
}
return $output;
}