【发布时间】:2016-03-15 20:21:11
【问题描述】:
我有一个关于我的搜索功能的查询。对这个查询应用了一个 while 循环。我在这个 while 循环中使用了多组 if 函数来根据用户搜索要求进一步过滤结果。并且 if 语句集中最终过滤器结果的 {email id}(step1 结果中的变量之一)用于查询在 foreach 循环中使用的另一个表并获取该表中的其他特定详细信息。
// WHILE SEARCH PROFILES
while ($result = mysql_fetch_array($result_finda)) {
$emails=$result['email'];
$age=$result['age'];
$name=$result['name'];
$height=$result['height'];
$groups=$result['groups'];
$country=$result['country'];
if (($age_from <= $age)&& ($age <= $age_to)) {
$a_emails =$emails;
$a_age=$age;
$a_firstname=$name;
$a_height=$height;
$a_groups=$groups;
$a_country=$country;
}
if (($height_from <= $a_height)&& ($a_height <= $height_to)) {
$h_emails =$a_emails;
$h_age=$a_age;
$h_firstname=$a_firstname;
$h_groups=$a_groups;
$h_country=$a_country;
}
foreach ($_POST['groups'] as $workgroup) {
if (strpos($workgroup, $h_groups) !== false) {
$m_emails =$h_emails;
$m_age=$h_age;
$m_name=$h_name;
$m_groups=$h_groups;
$m_country=$h_country;
}
}
foreach ($_POST['country'] as $workcountry) {
if (strpos($workcountry, $m_country) !== false) {
$c_emails =$m_emails;
$c_age=$m_age;
$c_name=$m_name;
$c_groups=$m_groups;
$c_country=$m_country;
}
}
$findeducation="SELECT * FROM education WHERE email='$c_emails'";
$result_findeducation=mysql_query($findeducation);
$educationstatus = mysql_fetch_array($result_findeducation);
$profile_ed=$educationstatus['education'];
foreach ($_POST['education'] as $educationstatus) {
if (strpos($educationstatus, $profile_ed) !== false) {
$e_emails =$_c_emails;
$e_age=$c_age;
$e_name=$c_name;
$e_groups=$c_groups;
$e_country=$c_country;
$e_education=$profile_ed;
}
}
if ($e_name) {
$count++;
}
echo $e_name;echo ' ';
echo $e_emails;echo ' ';
echo $e_age;echo '</br>';
echo $e_groups;echo '</br>';
echo $e_country;echo '</br>';
}
我得到了想要的结果,结果按照上面的代码过滤和显示。
我的问题是我没有得到显示结果的总数。请提出解决方案。
非常感谢。
【问题讨论】:
-
SELECT COUNT(*) FROM USERS WHERE ...或mysql_num_rows( $result_finda );在您的原始查询之后。此外, mysql_ 已弃用,现在已删除。考虑改用 mysqli_ 或 PDO。 -
您要在代码中的哪个位置获取计数或打印它?
-
您好,感谢 cmets。 @fusion3k 当我使用查询时,即使我有 2 个结果,它也只会给出计数 1
-
也许我的评论不清楚。我会写一个答案(或者你可以在文档中看到......)
-
"DISTINCT *" ??那是行不通的。