我需要帮助处理基于If else条件的多选查询。我有多个表,我想处理这样的查询。
- 在表1中搜索,如果找到,则返回结果
- 如果未找到,则在表2中搜索
- 如果在表1和表2中都没有找到单词,则检查表3,然后检查表4
我正在使用以下代码。
<?php
// 1. Create a database connection
$mysqli = new mysqli("localhost", "root", "", "us");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s'n", $mysqli->connect_error);
exit();
}
$term = strip_tags(substr($_POST['searchit'],0, 100));
$term = $mysqli->real_escape_string($term);
if($term=="") {
echo "Enter Something to search";
exit();
}
if(
$result = $mysqli->query("Select * from table1 where word like '{$term}%'
UNION
Select * from table2 where word like '{$term}%'")){
$num_rows = $result->num_rows;
if(mysqli_num_rows($result) >= 0) {
while($row = $result->fetch_assoc())
{
echo "Stem : {$row['word']} <br>";
}
}
else {
$result = $mysqli->query("Select * from table3 where words like '{$term}%'");
$num_rows = $result->num_rows;
if(mysqli_num_rows($result) >= 0) {
while($row = $result->fetch_assoc())
{
echo "words: {$row['words']} <br>";
}
}
}
}
else{
echo "No matches found!";
}
?>
尝试
str_replace($row['prefix'],'',$term );
<?php
mb_internal_encoding( 'UTF-8');
$mysqli = new mysqli("localhost", "root", "", "us");
if ($mysqli->connect_errno) {
printf("Connect failed: %s'n", $mysqli->connect_error);
exit();
}
$mysqli->query("SET WORDS 'utf8'");
$mysqli->query('SET CHARACTER SET utf8');
$term = strip_tags(substr($_POST['searchit'],0, 100));
$term = $mysqli->real_escape_string($term);
if($term=="") {
echo "Enter Something to search";
exit();
}
termcheck($term, $mysqli);
function termcheck($term, $mysqli){
$qry="Select * from table1 where word ='$term' UNION Select * from table2 where word = '$term'";
if($result = $mysqli->query($qry)){
//echo "inside sql table1";
$num_rows = $result->num_rows;
if($num_rows > 0) {
//echo "inside table1";
while($row = $result->fetch_assoc())
{
echo "Stem : ".$row['term']."<br>";
}
exit();
}
}else {
$qry1="Select * from table3";
$result = $mysqli->query($qry1);
$num_rows = $result->num_rows;
if($num_rows > 0) {
while($row = $result->fetch_assoc()){
echo "inside while";
if($table4=mb_strrichr($term,$row['prefix'])){
echo "inside if";
$sterm=str_replace($row['prefix'],'',$term);
$postfix=$row['prefix'];
echo "inside : ".$sterm;
}
}
}else{echo "Error : Table3 doesn't exist";}
}
if(!empty($sterm)){
$qry3="Select * from table4";
$result3 = $mysqli->query($qry3);
$num_rows = $result3->num_rows;
if($num_rows > 0) {
while($row = $result3->fetch_assoc()){
if(mb_strrichr($sterm,$row['postfix'])){
$ssterm=str_replace($row['postfix'],'',$sterm);
$prefix=$row['postfix'];
echo "prefix : ".$prefix;
echo "<br>";
echo "postfix : ".$postfix;
echo "<br>";
echo "sterm : ".$ssterm;
}
}exit();
}else{echo "Error : Table3 doesn't exist";}
}else{
$qry3="Select * from table4";
$result3 = $mysqli->query($qry3);
$num_rows = $result3->num_rows;
if($num_rows > 0) {
while($row = $result3->fetch_assoc()){
if(mb_strrichr($term,$row['postfix'])){
$prefix=$row['postfix'];
$sterm=str_replace( $row['postfix'],'',$term);
echo "prefix : ".$prefix;
echo "<br>";
echo "sterm : ".$sterm;
}
}exit();
} else{echo "Error : Table3 doesn't exist";}
}
}
?>