PHP - 如何使代码在同一数据库上的 2 个不同表上进行搜索

我正在用俚语制作拼写检查应用程序。如果复选框被选中,代码将搜索 english_table 和 slang_table。否则它只会在 english_table 上搜索。


我试过使用 if 语句,但它似乎是错误的。


$sql = "SELECT * FROM english_table WHERE engwords LIKE '".$partcheck."'";

$sql1 = "SELECT * FROM slang_table WHERE words LIKE '".$partcheck."'"; 



if statement if checked

if($result = mysqli_query($con, $sql){...}

elseif($result = mysqli_query($con, $sql1){...}

我的期望是,如果选中该复选框,代码将从两个表中搜索匹配的单词,否则只会在 english_table 上搜索。我该怎么做呢?


长风秋雁
浏览 136回答 2
2回答

jeck猫

您可以有条件地运行 Union ALL:$likePartcheck = '%' . $partcheck . '%';$query = "SELECT * from english_table WHERE engwords LIKE ?" . ($_GET['checkbox'] ? " UNION ALL SELECT * FROM slang_table WHERE words LIKE ?" : "");$stmt = $mysqli->prepare($query);if ($_GET['checkbox']) {    $stmt->bind_param('ss', $likePartcheck, $likePartcheck);} else {    $stmt->bind_param('s', $likePartcheck);}$stmt->execute();或者,如果您希望将结果分开,只需运行两个查询并根据需要组合结果。
打开App,查看更多内容
随时随地看视频慕课网APP