gpt4 book ai didi

php - 搜索 LONGTEXT 字段并显示结果

转载 作者:行者123 更新时间:2023-11-30 00:34:34 26 4
gpt4 key购买 nike

好吧,就这么简短而甜蜜。我的数据库中有一个字段是 LONGTEXT。该字段通常每个字段包含大约 2,000 行文本。

我需要它做的是遍历这个 LONGTEXT 字段并取出包含输入内容的行。(抱歉,我不擅长解释事情)

例如,我最初使用 .txt 文件,但认为 MySQL 是一种更简单的方法,因为我确实有一点经验。我有这个代码。

function searchcode($search)
{
$count = '0';
$lines = file('file.txt');
foreach($lines as $line)
{
if(strpos($line, $search) !== false)
{
echo "<tr><td>" . $line . "</td></tr>";
$count++;
}
}
echo "<tr><td style='border-top: 2px solid #000;'>$search was taken a total of $count times.</td></tr>";
}


CODE FOR SEARCHING FOR: searchcode("Camera");

这将查看我想要的 .txt 文件,并根据 $search 的内容显示行。我正是想要这个,但是使用 MySQL。

在此示例中,我正在寻找相机。它会查看 .txt 文件,然后会显示出包含“相机”一词的每一行。 (显然它的数量。)

让我们澄清一下:我正在寻找一些东西来搜索长文本字段。然后根据某个单词显示结果。

我已经了解 LIKE 语法,但我不知道如何使用它!

我想要的示例

[-数据库-]

ID---------日期---------信息

1 ---------2012年3月4日----相机已被删除。夹克已被脱掉。相机已添加。

[-MySQL 页面-]

这里是 MySQL 代码

[-网页-]

相机已被移除。

相机已添加。

最佳答案

您需要做的第一件事是确保您在服务器上安装并配置了 mysql-server、mysql-client、php-mysql 和 php-mysqli,我还建议使用 PhpMyAdmin用于友好的 mysql 管理。

创建实际的表:

CREATE TABLE code (
id int(11) not null auto_increment,
file longtext,
primary key(id)
)

下一步是选择mysql的访问方式,可以选择mysqli or pdo

以下示例将向您展示如何使用 mysqli 进行操作:

class db{
function query($query, $show_error=true)
{
$time_before = $this->get_real_time();

if(!$this->db_id) $this->connect(DBUSER, DBPASS, DBNAME, DBHOST);

if(!($this->query_id = mysqli_query($this->db_id, $query) )) {

$this->mysql_error = mysqli_error($this->db_id);
$this->mysql_error_num = mysqli_errno($this->db_id);

if($show_error) {
$this->display_error($this->mysql_error, $this->mysql_error_num, $query);
}
}

$this->MySQL_time_taken += $this->get_real_time() - $time_before;

$this->query_num ++;

return $this->query_id;
}

function get_array($query_id = '')
{
if ($query_id == '') $query_id = $this->query_id;

return mysqli_fetch_array($query_id);
}

function display_error($error, $error_num, $query = '')
{
if($query) {
// Safify query
$query = preg_replace("/([0-9a-f]){32}/", "********************************", $query); // Hides all hashes
$query_str = "$query";
}

echo '<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MySQL Fatal Error</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-style: normal;
color: #000000;
}
-->
</style>
</head>
<body>
<font size="4">MySQL Error!</font>
<br />------------------------<br />
<br />

<u>The Error returned was:</u>
<br />
<strong>'.$error.'</strong>

<br /><br />
</strong><u>Error Number:</u>
<br />
<strong>'.$error_num.'</strong>
<br />
<br />

<textarea name="" rows="10" cols="52" wrap="virtual">'.$query_str.'</textarea><br />

</body>
</html>';

exit();
}
}

define ("DBHOST", "localhost");
define ("DBNAME", "DBNAME");
define ("DBUSER", "DBUSER");
define ("DBPASS", "PASS");
define ("PREFIX", "PREFIX");
define ("USERPREFIX", "USERPREFIX");
define ("COLLATE", "utf8");

$db = new db;

现在你可以访问mysql了

插入一些数据:

$db->query("INSERT INTO code (code) VALUES('{$text}')");

从代码中选择:

  $row=$db->query("SELECT * FROM code WHERE file LIKE '%{$search}%'");
while($row=$db->get_array()){
/* your original code */
foreach($row['text'] as $line){
if(strpos($line, $search) !== false){
echo "<tr><td>" . $line . "</td></tr>";
$count++;
}
}
}

关于php - 搜索 LONGTEXT 字段并显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22280286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com