php - 将特定字母替换为范围数字并使用 php 在数据库中搜索

标签 php mysql sql arrays loops

请帮忙。

<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"

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

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

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

其中“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);       
}
}
}       

最佳答案

这可能是一个解决方案:

首先从数据库中获取基本选择的数字,通过将 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);
 }  

关于php - 将特定字母替换为范围数字并使用 php 在数据库中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737494/

相关文章:

java - 如何从mysql中的表中选择第3行?

javascript - jQuery-ajax 'on click event' 不工作

php - 上传多个文件php和mysql

php - 使用Join查询两个表

php:创建自动数据库分片逻辑?

mysql - 如何从表中检索学生信息?

mysql - SQL Plus 第 1 行错误

php - MySQL PDO 安全删除表中的行?

php - 匹配不同值的 RegEx BackReference

PHP:虽然循环只运行一次,但应该运行多次