请帮忙。
<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/