Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我怎样才能在搜索结果页面的顶部显示搜索结果的数量?_Php_Html_Search - Fatal编程技术网

Php 我怎样才能在搜索结果页面的顶部显示搜索结果的数量?

Php 我怎样才能在搜索结果页面的顶部显示搜索结果的数量?,php,html,search,Php,Html,Search,我有一个结果页面,我想在页面顶部有一点,上面写着返回了多少个结果。我该怎么做 我的代码是 <?php if(strlen(trim($_POST['search'])) > 0) { $search = "%" . $_POST["search"] . "%"; $searchterm = "%" . $_POST["searchterm"] . "%"; mysql_connect ("3", "", ""); mysql_select_db (""); if (!empty(

我有一个结果页面,我想在页面顶部有一点,上面写着返回了多少个结果。我该怎么做

我的代码是

<?php
if(strlen(trim($_POST['search'])) > 0) {

$search = "%" . $_POST["search"] . "%";
$searchterm = "%" . $_POST["searchterm"] . "%";

mysql_connect ("3", "", "");
mysql_select_db ("");
if (!empty($_POST["search_string"])) 
{ 

}  

$query = "SELECT name,location,msg FROM contact WHERE name LIKE '%$search%' AND 
location      LIKE '%$searchterm%'";

$result = mysql_query ($query);
if ($result) {
while ($row = mysql_fetch_array ($result)) { ?>
<center>
<table height="20" width="968" cellpadding="0" cellspacing="0">
<tr>
<td>

<table height="20" width="223" cellpadding="0" cellspacing="0">
<tr>
<td>
<font face="helvetica" size="2" color="#045FB4"><?php echo $row[0]; ?></font>
<hr size="1" color="#e6e6e6" width="100%"></hr>
</td>
</tr>
</table>

</td>
<td>

<table height="20" width="745" cellpadding="0" cellspacing="0">
<tr>
<td>
<font face="helvetica" size="2" color="black"><?php echo $row[1]; ?>
<?php echo $row[2];     ?></font>
<hr size="1" color="#e6e6e6" width="100%"></hr>
<td align="right">
<font face="helvetica" size="2" color="red">See More...</font>
<hr size="1" color="#e6e6e6" width="100%"></hr>
</td>
</tr>
</table>
</td>
</tr>
</table>
<?php
}
}
}
?>
</center>
谢谢


James

尝试使用mysql\u num\u rows$query。我不是PHP专家,但从内存来看,应该可以做到这一点。只要在需要的地方回显即可。

尝试使用mysql\u num\u rows$query。我不是PHP专家,但从内存来看,应该可以做到这一点。只要在任何你想要的地方重复就可以了。

如果你想把它保持在一个页面上,那么你就可以做到这一点,你就可以去了。另一方面,如果使用分页,则SELECT查询将有一个LIMIT子句,可以使用COUNT*在具有相同WHERE子句的相同表上构造第二个查询

$total_query = "SELECT COUNT(*) FROM contact WHERE name LIKE '%$search%' AND 
                location LIKE '%$searchterm%'"

如果你想把它保持在一页之内,那么你就可以做到,而且你很好。另一方面,如果使用分页,则SELECT查询将有一个LIMIT子句,可以使用COUNT*在具有相同WHERE子句的相同表上构造第二个查询

$total_query = "SELECT COUNT(*) FROM contact WHERE name LIKE '%$search%' AND 
                location LIKE '%$searchterm%'"
查看文档:


查看文档:

您还可以使用SQL\u CALC\u FOUND\u行和:


您还可以使用SQL\u CALC\u FOUND\u行和:

我不想和其他的好答案竞争。我将此作为一个答案发布,因为它太大,无法发表评论

由于您在评论中询问了可以做些什么来改进HTML,因此我对您的代码进行了一些重构,以说明您可以做些什么。为了完成,我还包括了其他人提到的mysql_num_rows$result

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sample</title>
<style type="text/css">
table {
    font-family: helvetica;
    font-size: small;
    width: 968px;
}
td {
    border-bottom: 1px solid #e6e6e6;
}
.name {
    color:#045FB4;
}
.msg {
    color:black;
}
.more {
    color:red;
}
</style>
</head>

<body>
<?php

if(strlen(trim($_POST['search'])) > 0):

$search = mysql_real_escape_string($_POST["search"]);
$searchterm = mysql_real_escape_string($_POST["searchterm"]);

mysql_connect ("localhost", "root", "");
mysql_select_db ("sample");
if (!empty($_POST["search_string"])) 
{
    $search_string = mysql_real_escape_string($_POST["search_string"]);
    // more code here
}  



$query = "SELECT name,location,msg FROM contact
          WHERE name LIKE '%$search%'
          AND location LIKE '%$searchterm%'";

$result = mysql_query ($query);
if ($result):

    $num_rows = mysql_num_rows($result);
?>
<p>Found <?php echo $num_rows; ?> results.</p>

<table>
<?php
    while ($row = mysql_fetch_array ($result)):
?>
    <tr>
        <td class="name"><?php echo $row['name']; ?></td>
        <td class="msg"><?php echo $row['location'], ' ', $row['msg']; ?></td>
        <td class="more">See More...</td>
    </tr>

<?php
    endwhile;
endif;
endif;
?>

</table>
</body>
</html>
通常,我会将CSS放在一个单独的文件中,但这只是一个示例。 需要注意的一些事项:

只有一张桌子 HTML中没有样式信息 它使用mysql\u real\u escape\u字符串。理想情况下,您也希望使用准备好的声明,但我将把它作为您个人的练习: 即使这一点也可以改进很多,但这只是一个开始。

我不想与其他优秀答案竞争。我将此作为一个答案发布,因为它太大,无法发表评论

由于您在评论中询问了可以做些什么来改进HTML,因此我对您的代码进行了一些重构,以说明您可以做些什么。为了完成,我还包括了其他人提到的mysql_num_rows$result

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sample</title>
<style type="text/css">
table {
    font-family: helvetica;
    font-size: small;
    width: 968px;
}
td {
    border-bottom: 1px solid #e6e6e6;
}
.name {
    color:#045FB4;
}
.msg {
    color:black;
}
.more {
    color:red;
}
</style>
</head>

<body>
<?php

if(strlen(trim($_POST['search'])) > 0):

$search = mysql_real_escape_string($_POST["search"]);
$searchterm = mysql_real_escape_string($_POST["searchterm"]);

mysql_connect ("localhost", "root", "");
mysql_select_db ("sample");
if (!empty($_POST["search_string"])) 
{
    $search_string = mysql_real_escape_string($_POST["search_string"]);
    // more code here
}  



$query = "SELECT name,location,msg FROM contact
          WHERE name LIKE '%$search%'
          AND location LIKE '%$searchterm%'";

$result = mysql_query ($query);
if ($result):

    $num_rows = mysql_num_rows($result);
?>
<p>Found <?php echo $num_rows; ?> results.</p>

<table>
<?php
    while ($row = mysql_fetch_array ($result)):
?>
    <tr>
        <td class="name"><?php echo $row['name']; ?></td>
        <td class="msg"><?php echo $row['location'], ' ', $row['msg']; ?></td>
        <td class="more">See More...</td>
    </tr>

<?php
    endwhile;
endif;
endif;
?>

</table>
</body>
</html>
通常,我会将CSS放在一个单独的文件中,但这只是一个示例。 需要注意的一些事项:

只有一张桌子 HTML中没有样式信息 它使用mysql\u real\u escape\u字符串。理想情况下,您也希望使用准备好的声明,但我将把它作为您个人的练习:
即使这样也可以改进很多,但这只是一个开始。

@cypher:这可能是因为糟糕的HTML和糟糕的PHP实践。不过,这些问题只应在答案中注明。这个问题仍然有效。我向上投了票,以帮助取消否决票。很明显,他们太胆小了,不敢发表评论。我经常听到这样的话:如果它奏效而且很容易,为什么不做呢?答:维护起来比较困难。想改变字体吗?现在你必须检查每一页上的每一个字体标签。使用CSS,您可以在一个文件中进行一次更改。基于表格的布局也不受欢迎。center和font已被弃用,您可能需要google SQL注入攻击@克拉克男孩:重要的是思想也附议。表格应该只用于显示他们设计的数据;如果您在正确的结构中使用屏幕阅读器,它们会使网站更易于用户理解-例如,使用THAD作为标题行,th标记作为标题单元格,tbody封装所有正文行,tfoot作为页脚。th标记可用于列标题和行标题。尝试使用…而不是外部表格。。。我知道那里有内联样式;我懒得在这里为它写CSS。@cypher:可能是因为糟糕的HTML和糟糕的PHP实践。不过,这些问题只应在答案中注明。这个问题仍然有效。我向上投了票,以帮助取消否决票。很明显,他们太胆小了,不敢发表评论。我经常听到这样的话:如果它奏效而且很容易,为什么不做呢?答:维护起来比较困难。想改变字体吗?现在你必须检查每一页上的每一个字体标签。使用CSS,您可以在一个文件中进行一次更改。基于表格的布局也不受欢迎。center和font已被弃用,您可能需要google SQL注入攻击@克拉克男孩:重要的是思想也附议。表格应该只用于显示他们设计的数据;如果您在正确的结构中使用屏幕阅读器,它们会使网站更易于用户理解-例如,使用THAD作为标题行,th标记作为标题单元格,tbody封装所有正文行,tfoot作为页脚。th标签可用于bo th表示列标题和行标题。尝试使用…而不是外部表格。。。我知道那里有内联样式;我懒得在这里为它写CSS。