我正在尝试做的事情:
我有一个搜索框,可以搜索帖子或用户名或用户电子邮件。
帖子在一个表中,用户在另一个表中。
这是结构:
帖子
post_id user_id post post_date 可见
用户
用户名 用户名 电子邮件 名字 姓氏
现在,我正在我的模型中尝试以下代码:
<?php
public function posts_that_match_search_term($search_term) {
$post_query = $this->db->query("SELECT * FROM posts,users WHERE post_message LIKE '%$search_term%' AND post_user_id=user_id ORDER BY post_id DESC", array());
$post_query2 = $this->db->query("SELECT * FROM users WHERE user_username LIKE '%$search_term%' OR user_email LIKE '%$search_term%' ORDER BY user_id DESC", array());
if ($post_query->num_rows() == 0) {
return array();
} else {
$i = 0;
foreach ($post_query->result() AS $row) {
$post_array[$i]["post_id"] = $row->post_id;
$post_array[$i]["post_message"] = $row->post_message;
$post_array[$i]["post_datetime"] = $row->post_datetime;
$post_array[$i]["post_completion_status"] = $row->post_completion_status;
$post_array[$i]["post_completion_date"] = $row->post_completion_date;
$post_array[$i]["post_completion_notes"] = $row->post_completion_notes;
}
return $post_array;
}
if ($post_query2->num_rows() == 0) {
return array();
} else {
$a = 0;
foreach ($post_query2->result() AS $row2) {
$post_array2[$a]["user_id"] = $row2->user_id;
$post_array2[$a]["user_name"] = $row2->user_name;
$post_array2[$a]["user_username"] = $row2->user_username;
$post_array2[$a]["user_image_filename"] = $row2->user_image_filename;
$post_array2[$a]["user_first_name"] = $row2->user_first_name;
$post_array2[$a]["user_last_name"] = $row2->user_last_name;
$post_array2[$a]["user_email"] = $row2->user_email;
$a++;
}
return $post_array2;
}
}
/* 注意 = 为了简单起见,代码在某些地方被缩短 */
如果我一一运行它们,这两个查询都有效并返回结果。也就是说,如果我注释第一个查询和 if ($post_query->num_rows() == 0) { 之后的所有代码,那么代码的第二部分工作正常并返回结果。对面也一样。
任何帮助将不胜感激。
问候,佐兰
当两者都未注释时,我没有收到任何错误,只有 0 个结果。
任何人都可以帮忙吗?