我有6列(建筑物,c1,c2,c3,c4,c5),其可变长度除以'&'字符。
示例:
building =“ Via Roma 1”;
c1 =“ C505061CC5BB7245216BB3E7EC7C52C6&50B43466133B7D8EC57B6A28727A9EF2&F0F8659D443B6C36FAE628910DB58F69”;
c2 =“ 0206EE4050737803AB281ABAA3A229F5”;
c3 =“ E6D3E9584D7BEB648CC8E54E4A493770”;
c4 =“ 944207DFB4267F08FA1D29296BDEBC86&DDD4571450E56B7DEA5247B1E88DBD60”;
c5 =“ 6475CC1F4CD44798258A4798CEEA9E6C”;
我需要获取建筑价值,位置以及c1,c2,c3,c4,c5来源:
我尝试使用“ LIKE”和以下代码进行此操作:
<?php
require('db.php');
if (isset($_POST['id']) && isset($_POST['value'])) {
$output['post_parameters_error_flag'] = false;
}
else
{
$output['post_parameters_error_flag'] = true;
$output['message'] = "Bad POST parameters.";
goto encode;
}
$conn=$dbh->prepare("SELECT value FROM authorized_devices WHERE value = :id");
$conn->execute(array(':id' => $_POST['id']));
if($conn->rowCount() === 1) {
$conn=$dbh->prepare("SELECT building,c1 FROM source WHERE c1 LIKE :value");
$conn->execute(array(':value' => "%{$_POST['value']}%"));
if ($conn->rowCount() > 0) {
$fetch = $conn->fetch(PDO::FETCH_ASSOC);
$position = 0;
if (strpos($fetch['c1'],'&') !== false) {
$splitted_value = explode("&",$fetch['c1']);
for ($i = 0; $i < sizeof($splitted_value); $i++) {
if (strpos($splitted_value[$i],$_POST['value']) !== false) {
$position = $i;
}
}
}
$output['data_error_flag'] = false;
$output['message'] = "Done.";
$output['building'] = $fetch['building'];
$output['type'] = "Value obtained from c1 column";
$output['position'] = $position;
goto encode;
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 1;
$output['message'] = "No valid tag found.";
goto encode;
}
$conn=$dbh->prepare("SELECT building,c2 FROM source WHERE c2 LIKE :value");
$conn->execute(array(':value' => "%{$_POST['value']}%"));
if ($conn->rowCount() > 0) {
$fetch = $conn->fetch(PDO::FETCH_ASSOC);
$position = 0;
if (strpos($fetch['c2'],$fetch['c2']);
for ($i = 0; $i < sizeof($splitted_value); $i++) {
if (strpos($splitted_value[$i],$_POST['value']) !== false) {
$position = $i;
}
}
}
$output['data_error_flag'] = false;
$output['message'] = "Done.";
$output['building'] = $fetch['building'];
$output['type'] = "Value obtained from c2 column";
$output['position'] = $position;
goto encode;
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 1;
$output['message'] = "No valid tag found.";
goto encode;
}
$conn=$dbh->prepare("SELECT building,c3 FROM source WHERE c3 LIKE :value");
$conn->execute(array(':value' => "%{$_POST['value']}%"));
if ($conn->rowCount() > 0) {
$fetch = $conn->fetch(PDO::FETCH_ASSOC);
$position = 0;
if (strpos($fetch['c3'],$fetch['c3']);
for ($i = 0; $i < sizeof($splitted_value); $i++) {
if (strpos($splitted_value[$i],$_POST['value']) !== false) {
$position = $i;
}
}
}
$output['data_error_flag'] = false;
$output['message'] = "Done.";
$output['building'] = $fetch['building'];
$output['type'] = "Value obtained from c3 column";
$output['position'] = $position;
goto encode;
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 1;
$output['message'] = "No valid tag found.";
goto encode;
}
$conn=$dbh->prepare("SELECT building,c4 FROM source WHERE c4 LIKE :value");
$conn->execute(array(':value' => "%{$_POST['value']}%"));
if ($conn->rowCount() > 0) {
$fetch = $conn->fetch(PDO::FETCH_ASSOC);
$position = 0;
if (strpos($fetch['c4'],$fetch['c4']);
for ($i = 0; $i < sizeof($splitted_value); $i++) {
if (strpos($splitted_value[$i],$_POST['value']) !== false) {
$position = $i;
}
}
}
$output['data_error_flag'] = false;
$output['message'] = "Done.";
$output['building'] = $fetch['building'];
$output['type'] = "Value obtained from c4 column";
$output['position'] = $position;
goto encode;
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 1;
$output['message'] = "No valid tag found.";
goto encode;
}
$conn=$dbh->prepare("SELECT building,c5 FROM source WHERE c5 LIKE :value");
$conn->execute(array(':value' => "%{$_POST['value']}%"));
if ($conn->rowCount() > 0) {
$fetch = $conn->fetch(PDO::FETCH_ASSOC);
$position = 0;
if (strpos($fetch['c5'],$fetch['c5']);
for ($i = 0; $i < sizeof($splitted_value); $i++) {
if (strpos($splitted_value[$i],$_POST['value']) !== false) {
$position = $i;
}
}
}
$output['data_error_flag'] = false;
$output['message'] = "Done.";
$output['building'] = $fetch['building'];
$output['type'] = "Value obtained from c5 column";
$output['position'] = $position;
goto encode;
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 1;
$output['message'] = "No valid tag found.";
goto encode;
}
} else {
$output['data_error_flag'] = true;
$output['data_error_id'] = 2;
$output['message'] = "Unknown device.";
goto encode;
}
encode:
die(json_encode($output));
?>
但是它仅适用于某些示例字段。 有任何有效的“赞”替代品吗?
输出应为:
{
"post_parameters_error_flag": false,"data_error_flag": false,"message": "Done.","building": "Via Roma 1","type": "obtained from c1","position": 1
}
带有$ _POST ['value'] =>“ 50B43466133B7D8EC57B6A28727A9EF2”