php搜索引擎
问题描述:
我有3个表我想访问我的搜索php。其中2个包含所有用户的配置文件信息。一个叫cprofile,另一个叫bprofile。它们都链接到包含用户名,电子邮件,密码和最重要的个人资料图片的用户表。php搜索引擎
随着搜索引擎,我试图访问搜索到个人资料表的信息,并从用户表中收集帐户信息。这是我寻找这两种类型的用户代码:
$search_output = "";
if(isset($_POST['searchquery']) && $_POST['searchquery'] != "") {
$searchquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['searchquery']);
if($_POST['filter1'] == "Whole Site") {
$sqlCommand = "(SELECT count(*) FROM cprofile WHERE firstname ='%".$searchquery."%' OR lastname ='%".$searchquery."%')
UNION (SELECT count(*) FROM bprofile WHERE cname ='%".$searchquery."%')";
$query = mysqli_query($db_conx, $sqlCommand) or die(mysqli_error($db_conx));
$count = mysqli_num_rows($query);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$userid = $row["userID"];
$ret = mysqli_query($db_conx, "SELECT id, username FROM users WHERE id='$userid'");
while($raw = mysqli_fetch_array($ret, MYSQLI_ASSOC)) {
$username = $raw['username']; $file= $raw['avatar'];
}
}
}
}
是否有人通知我要去的地方错了,我怎么能解决这个问题?在此先感谢
答
我可能会在这里错误的方向,但你从你的查询得到计数,然后在while循环中寻找一个用户ID。如果你想要两者然后做类似
$sqlCommand = "
(SELECT userid, count(*) as count FROM cprofile WHERE firstname ='%".$searchquery."%' OR lastname ='%".$searchquery."%')
UNION
(SELECT userid, count(*) as count FROM bprofile WHERE cname ='%".$searchquery."%')
";
+0
谢谢,这确实有助于我面对的问题。它现在收集了我希望从while循环中获得的所有内容。再次感谢您的帮助:) – hsd 2013-03-18 11:31:38
请缩进你的代码,以便它清晰。 – DaveRandom 2013-03-18 00:20:16
不应该在'firstname ='%“中使用'LIKE'。$ searchquery。”%'OR'? – hjpotter92 2013-03-18 00:22:08
这确实有帮助。但我的主要问题是尝试访问该获取数组以获取帐户详细信息,如配置文件图片和用户名。 – hsd 2013-03-18 00:28:08