我如何搜索(在数据库行中)
How can I search (In DB row)
我正在尝试找出如何在数据库行中进行搜索,但我没有想法...也许你们中的一些人可以提供帮助。我正在为我的老板制作一个神奇的收集网站。在这个游戏中,您有多个集合,每个集合都有一张牌。有一个页面,您可以在其中查看所有集合,在此页面中,我想要一个搜索栏来查找集合。我想要的是页面顶部的搜索栏,当您输入 "Strong" 时,您会看到包含 "Strong".
的每个集合名称
输出:http://prntscr.com/5ubsa2 列表继续很多...
如您在输出中所见,列出了所有集合。我希望您可以在那里看到搜索结果。
输入:
<body>
<?php
// Get data
$query = 'select * from sets ORDER BY releaseDate;';
$sets = $conn->query($query);
// Generate HTML
$htmlSets = '';
foreach($sets as $row){
$htmlSets .= '<div class="col-md-4 magic-set"><a href="'.$baseURL.'set.php?id='.$row['id'].'"><h5>'.$row['name'].'</h5></a></div>';
}
//set.php?fname=areg&lname=aerga
?>
<!-- Page Content -->
<div class="container">
<?php include_once 'inc/navigation.php';?>
<div class="content">
<div class="row">
<div class="col-md-12">
<div class="text-center">
<h3>Magic: the Gathering Sets</h3>
<hr>
</div>
</div>
</div>
<div class="row">
<?= $htmlSets ?>
</div>
<!-- /.row -->
</div>
<?php include_once 'inc/footer.php';?>
</div>
<!-- /.container -->
</body>
您似乎还没有启动您的 MySQL 连接,也没有退出它。
<?php
define("DB_SERVER", "localhost");
define("DB_USER", "username");
define("DB_PASS", "password");
define("DB_NAME", "database_name");
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
// If the connection didn't succeed, run this error:
if (mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
此连接应位于文档的最开头。你还必须有 mysqli_close($connection);在文档末尾关闭连接。
您的查询末尾还有一个分号,因此请务必将其删除。这应该是查询的正确格式:
$query = 'SELECT * FROM sets ORDER BY releaseDate';
您不能对 MySQL 查询使用 foreach 循环,您只能使用 while 循环(除非您关闭了主 ID 的自动递增)。这是您的代码在 while 循环中的样子:
<?php
// You can also use mysqli_fetch_row()
while ($row = mysqli_fetch_assoc($sets)) {
$htmlSets .= '<div class="col-md-4 magic-set"><a href="'.$baseURL.'set.php?id='.$row['id'].'"><h5>'.$row['name'].'</h5></a></div>';
}
// Since your query is of a 'read' type and
// not an 'update', you are required the free the result:
mysqli_free_result($sets) ;
?>
一定要释放你的结果,以防你以后需要再次使用它。
这很简单,兄弟,实际上你必须检查你的 saerch 表单是 get 或者 post 你总是检查用户是否搜索任何东西或者它是空的
例如它是获取表单
你的查询参数是 "q"
在 php 你只需要这样做
$query = "select * from sets ORDER BY releaseDate";
if( if(!empty($_GET['q'])))
{
$query = "select * from sets WHERE name LIKE '%" .$_GET['q']. "%' ORDER BY releaseDate";
}
这只是基本概念...
你可以用一点 AJAX 来做到这一点。 Here's 一个样本。只需替换为您的值和 CSS.
我正在尝试找出如何在数据库行中进行搜索,但我没有想法...也许你们中的一些人可以提供帮助。我正在为我的老板制作一个神奇的收集网站。在这个游戏中,您有多个集合,每个集合都有一张牌。有一个页面,您可以在其中查看所有集合,在此页面中,我想要一个搜索栏来查找集合。我想要的是页面顶部的搜索栏,当您输入 "Strong" 时,您会看到包含 "Strong".
的每个集合名称输出:http://prntscr.com/5ubsa2 列表继续很多...
如您在输出中所见,列出了所有集合。我希望您可以在那里看到搜索结果。
输入:
<body>
<?php
// Get data
$query = 'select * from sets ORDER BY releaseDate;';
$sets = $conn->query($query);
// Generate HTML
$htmlSets = '';
foreach($sets as $row){
$htmlSets .= '<div class="col-md-4 magic-set"><a href="'.$baseURL.'set.php?id='.$row['id'].'"><h5>'.$row['name'].'</h5></a></div>';
}
//set.php?fname=areg&lname=aerga
?>
<!-- Page Content -->
<div class="container">
<?php include_once 'inc/navigation.php';?>
<div class="content">
<div class="row">
<div class="col-md-12">
<div class="text-center">
<h3>Magic: the Gathering Sets</h3>
<hr>
</div>
</div>
</div>
<div class="row">
<?= $htmlSets ?>
</div>
<!-- /.row -->
</div>
<?php include_once 'inc/footer.php';?>
</div>
<!-- /.container -->
</body>
您似乎还没有启动您的 MySQL 连接,也没有退出它。
<?php
define("DB_SERVER", "localhost");
define("DB_USER", "username");
define("DB_PASS", "password");
define("DB_NAME", "database_name");
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
// If the connection didn't succeed, run this error:
if (mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
此连接应位于文档的最开头。你还必须有 mysqli_close($connection);在文档末尾关闭连接。
您的查询末尾还有一个分号,因此请务必将其删除。这应该是查询的正确格式:
$query = 'SELECT * FROM sets ORDER BY releaseDate';
您不能对 MySQL 查询使用 foreach 循环,您只能使用 while 循环(除非您关闭了主 ID 的自动递增)。这是您的代码在 while 循环中的样子:
<?php
// You can also use mysqli_fetch_row()
while ($row = mysqli_fetch_assoc($sets)) {
$htmlSets .= '<div class="col-md-4 magic-set"><a href="'.$baseURL.'set.php?id='.$row['id'].'"><h5>'.$row['name'].'</h5></a></div>';
}
// Since your query is of a 'read' type and
// not an 'update', you are required the free the result:
mysqli_free_result($sets) ;
?>
一定要释放你的结果,以防你以后需要再次使用它。
这很简单,兄弟,实际上你必须检查你的 saerch 表单是 get 或者 post 你总是检查用户是否搜索任何东西或者它是空的 例如它是获取表单 你的查询参数是 "q" 在 php 你只需要这样做
$query = "select * from sets ORDER BY releaseDate";
if( if(!empty($_GET['q'])))
{
$query = "select * from sets WHERE name LIKE '%" .$_GET['q']. "%' ORDER BY releaseDate";
}
这只是基本概念...
你可以用一点 AJAX 来做到这一点。 Here's 一个样本。只需替换为您的值和 CSS.