【问题标题】:Replace specific letter to a range numbers and search in database using php将特定字母替换为范围数字并使用 php 在数据库中搜索
【发布时间】:2014-07-07 09:33:47
【问题描述】:

请帮忙。

<form name="main" method="POST">                    
<input name="search" type="text">
<input name="submit" type="submit" value="Go">
</form>

每当用户输入 X 或 Y 或 Z 时,此值将读取为范围 0-9

我需要使用 php 和 mysql 捕获数据库中的值

当用户在搜索输入文本中输入值时,例如。 "XX1YYZ"

我需要读取字母“X”等于范围“0,1,2,3,4,5,6,7,8,9”

我需要读取字母“Y”等于范围“0,1,2,3,4,5,6,7,8,9”

我需要读取字母“Z”等于范围“0,1,2,3,4,5,6,7,8,9”

其中“X”不等于“Y”和“Z”

其中“Y”不等于“X”和“Z”

其中“Z”不等于“X”和“Y”

数据库中的样本数据

1233557

1255661

1288119

7711458

666788

3344556

例如我在文本输入中输入“12XXYYZ”

输出应该是“1233557”和“1255661”和“1288119”

因为它等于数据库值

它有点复杂吗?请帮忙

这是我目前为止,但每个结果的数字不应该相等,应该搜索数据库值

if(isset($_POST['submit']))
{
$searchtext = $_POST['search'];
foreach (range(0, 9) as $n) {

$trans = array("X" => $n, "x" => $n, "Y" => $n, "y" => $n, "Z" => $n, "z" => $n);
if (strtr($searchtext, $trans)){

echo '<br>' . strtr($searchtext, $trans);       
}
}
}       

【问题讨论】:

  • 你应该添加你编写的代码来实现这个目标
  • 我输入了我的初始代码,但这就是我所拥有的,我不知道下一步是什么
  • 您尝试这样做的目的是什么?通过更多解释,我们可能会为您提供更多帮助。
  • 我会把它放在快速搜索上,当用户在搜索文本上输入 xXX 或 YYY 或 ZZZ 时,所有带有三元组的数字,如 777,222,333 将捕获到数据库并显示在表格页面中。

标签: php mysql sql arrays loops


【解决方案1】:

这可能是一个解决方案:

首先从数据库中获取获得基本选择的数字,将 XYZ 替换为???

select * from [table] where [field] like '12_____';

这应该会限制您的选择。

下一步是在 PHP 中,下面是伪代码:

foreach ($row)
  $i = 0;
  foreach ($char in $filter) {
    $i++;
    if ($char == 'Z')
      if ($Z == empty) 
        $Z = $field[$i]
      else
        if ($field[$i] != $Z)
          break;
     // repeat for Y
     // repeat for x
   }
   if (x == y or y == z or x == z)
     continue;
   addtoresult($row);
 }  

【讨论】:

  • 这是我最初的问题,我不知道如何使用输入 XYZ 或 ??? 过滤我的数据库中的所有相等记录
  • stringreplace(x,?,stringreplace(y,>,stringreplace(z,?,filter)));
  • 我的意思是,例如对于您的查询“select * from [table] where [field] = '12?????';”如何在sql中运行它应该等于1233441
  • 抱歉,对不起。其中 [field] 像“12_____”。改变了答案。 w3schools.com/sql/sql_wildcards.asp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多