Jump to content

search results are being duplicated can't figure out why


harkly

Recommended Posts

The results of my searches are being displayed multiple times.

 

I doing mutilple searches, the first is on zip codes based within a distance from another zip code. Then doing more searched based on other criteria. It is the secondary criteris that keeps looping and displaying multiple results of the same thing.

 

I had all the searched working fine with no duplicating and the problem started when I combined the zip code search and the user search.

 

Here is my full code...

<?php

  require_once('zipcode.class.php');

  include('library/login.php');
  login();
  mysql_select_db('test');

  $gender=$_POST["gender"];
  $genderPref=$_POST["genderPref"];
  $ageMin=$_POST["ageMin"];
  $ageMax=$_POST["ageMax"];
  $smoke=$_POST["smoke"];
  $religion=$_POST["religion"];
  $zip_code=$_POST["zip_code"];

  $today = date("Y");
  $year1 = $today-$ageMin;
  $year2 = $today-$ageMax;

//zip code search
  $z = new zipcode_class;
  $zips = $z->get_zips_in_range($_POST['zip_code'], $_POST['miles'], _ZIPS_SORT_BY_DISTANCE_ASC, true);

  if ($zips === false) {
    echo "That zip code is not valid, please try again.";}
  else {
    $zips_in_range = implode(',', array_keys($zips) );

  $result = mysql_query("SELECT userID FROM user WHERE zip IN (". $zips_in_range .")");

  while ($row = mysql_fetch_assoc($result) )
    {
      foreach ($row as $userID)
        {
          extract($row, EXTR_PREFIX_SAME, "userID");

          $query = mysql_query("Select * FROM photos WHERE userID = '$userID' ");
          while ($r=mysql_fetch_array($query))
            {

//user search 
              $db_row_start = 0;

              if ($genderPref == "3"){
                  if(empty($smoke)) {
                      if(empty($religion)) {
                          $query1 = ("SELECT user.userID, user.gender, user.genderPref, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref"); }
                      else {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, bkgd.relg,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND bkgd.relg = $religion"); }
                        }
                  else {
                      if(empty($religion)) {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND about_me.smoking = $smoke"); }
                      else {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking, bkgd.relg,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND about_me.smoking = $smoke AND bkgd.relg = $religion"); }
                        }
                } // end genderPref = 3
              else {
                  if(empty($smoke)) {
                      if(empty($religion)) {
                          $query1 = ("SELECT user.userID, user.gender, user.genderPref, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref"); }
                      else {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, bkgd.relg,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND bkgd.relg = $religion"); }
                        }
                  else {
                      if(empty($religion)) {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND about_me.smoking = $smoke"); }

                      else {
                          $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking, bkgd.relg,
                                             CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                                      FROM user
                                      LEFT JOIN photos
                                      ON user.userID = photos.userID
                                      LEFT JOIN about_me
                                      ON user.userID = about_me.userID
                                      LEFT JOIN bkgd
                                      ON user.userID = bkgd.userID
                                      WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND about_me.smoking = $smoke AND bkgd.relg = $religion"); }
                      }
              }
// displays all results
              if ($results = mysql_query($query1)) {
                  $cells_wide = 4;
                  echo " <table cellspacing='0' cellpadding='3' border='0' width='700'><tr> ";
                  $c = 0;

                  if (mysql_num_rows($results)) {
                      while ($r=mysql_fetch_array($results))
                        {
                           $userID=$r["userID"];
                           $bd_year=$r["bd_year"];
                           $gender=$r["gender"];
                           $genderPref=$r["genderPref"];
                           $photo_1=$r["photo_1"];
                           $city=$r["city"];
                           $state=$r["state"];
                           $zip=$r["zip"];
                           $age = $r['age'];

                           if (0 < $c && 0 == $c % $cells_wide) {
                              echo " </tr><tr> "; }
                              extract($r);
                              echo " <td width=175> ";
                              echo "<div id='profiles'><a href='profile.php'>
                                    <div id='name'>$userID</div> ";
                           if (empty($photo_1)) {
                              echo " <div id='image'><img src='uploads/noPhoto.gif' width='100' height='100' border='0'></div></a> "; }
                           else {
                               echo " <div id='image'><img src='uploads/$photo_1' width='100' height='100' border='0'></div></a> "; }
                               echo " <div id='status'>$age - $city, $state</div></div></td> ";
                               $c++; }

                               /*
                               * May require a way to insert cleanup <td>s if the total number of cells
                               * is not evenly divisible by the number of cells per row. This is not an
                               * issue if you use floating <div>s for your layout.
                               */
                               echo " </tr></table> "; }

                           // What to do if myqsl_query() returns FALSE instead of a resource
                           else {
                              echo " <table border='0' width='700'><tr><td><div id='errorMsg'>Sorry, we didn't find any results based on your search criteria, please try again with more options. </div> </td></tr></table> "; }
           }}}}
           echo "No result found in the $zip_code area.";


           }
?>

It is also pulling more results than what is requested.

 

If you search for $gender=1 & $genderPref=2 it is pulling that info but also pulling $gender=2 & $genderPref=1  and doing the same if you switch the numbers around.

 

The search for $gender=1 & $genderPref=1 works fine.

 

All this workes fine on its own but not when they are combined.

 

I'm adding the separte codes.

 

zip search

<?php

  require_once('zipcode.class.php');

  include('library/login.php');
  login();
  mysql_select_db('harkly');

  $gender=$_POST["gender"];
  $genderPref=$_POST["genderPref"];
  $ageMin=$_POST["ageMin"];
  $ageMax=$_POST["ageMax"];
  $smoke=$_POST["smoke"];
  $religion=$_POST["religion"];
  $zip_code=$_POST["zip_code"];

  $today = date("Y");
  $year1 = $today-$ageMin;
  $year2 = $today-$ageMax;

  $z = new zipcode_class;
  $zips = $z->get_zips_in_range($_POST['zip_code'], $_POST['miles'], _ZIPS_SORT_BY_DISTANCE_ASC, true);

  if ($zips === false) {
    echo "That zip code is not valid, please try again.";}
  else {
    $zips_in_range = implode(',', array_keys($zips) );

  $result = mysql_query("SELECT userID FROM user WHERE zip IN (". $zips_in_range .")");

  while ($row = mysql_fetch_assoc($result) )
    {
      foreach ($row as $userID)
        {
          extract($row, EXTR_PREFIX_SAME, "userID");

          $query = mysql_query("Select * FROM photos WHERE userID = '$userID' ");
          while ($r=mysql_fetch_array($query))
            {
              echo " Zips found";
            }
        }
    }
?>

 

user search

 

       <?php

         include('library/login.php');
         login();

         mysql_select_db('harkly');

         $gender=$_GET["gender"];
         $genderPref=$_GET["genderPref"];
         $ageMin=$_GET["ageMin"];
         $ageMax=$_GET["ageMax"];
         $smoke=$_GET["smoke"];
         $religion=$_GET["religion"];
         
         $today = date("Y");
         $year1 = $today-$ageMin;
         $year2 = $today-$ageMax;


         // Sets the database record to start at
         $db_row_start = 0;

if ($genderPref == "3"){

if(empty($smoke)) {
    if(empty($religion)) {
         $query1 = ("SELECT user.userID, user.gender, user.genderPref, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref");
    } else {
$query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, bkgd.relg,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND bkgd.relg = $religion");
    }
} else {
    if(empty($religion)) {
         $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND about_me.smoking = $smoke");
    } else {
         $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking, bkgd.relg,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $genderPref AND about_me.smoking = $smoke AND bkgd.relg = $religion");
    }
}
}
else {

if(empty($smoke)) {
    if(empty($religion)) {
         $query1 = ("SELECT user.userID, user.gender, user.genderPref, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref");
    } else {
$query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, bkgd.relg,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND bkgd.relg = $religion");
    }
} else {
    if(empty($religion)) {
         $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND about_me.smoking = $smoke");
    } else {
         $query1 = ("SELECT user.userID, user.gender, user.bd_year, user.city, user.state, user.zip, photos.userID, photos.photo_1, about_me.smoking, bkgd.relg,
                           CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age
                    FROM user
                    LEFT JOIN photos
                    ON user.userID = photos.userID
                    LEFT JOIN about_me
                    ON user.userID = about_me.userID
                    LEFT JOIN bkgd
                    ON user.userID = bkgd.userID
                    WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND genderPref = $gender AND gender = $genderPref AND about_me.smoking = $smoke AND bkgd.relg = $religion");
    }
}}


         if ($results = mysql_query($query1))
           {
             $cells_wide = 4;
             echo " <table cellspacing='0' cellpadding='3' border='0' width='700'><tr> ";
             $c = 0;

              if (mysql_num_rows($results))
               {
                 while ($r=mysql_fetch_array($results))
                   {
                     $userID=$r["userID"];
                     $bd_year=$r["bd_year"];
                     $gender=$r["gender"];
                     $genderPref=$r["genderPref"];
                     $photo_1=$r["photo_1"];
                     $city=$r["city"];
                     $state=$r["state"];
                     $zip=$r["zip"];
                     $age = $r['age'];

                      if (0 < $c && 0 == $c % $cells_wide)
                        {
                          echo " </tr><tr> ";
                        }
                      extract($r);
                        echo " <td width=175> ";
                        
                          echo " 
                            <div id='profiles'>
                              <a href='profile.php'>
                              <div id='name'>$userID</div> ";
                        if (empty($photo_1))
                        {
                            echo " <div id='image'><img src='uploads/noPhoto.gif' width='100' height='100' border='0'></div></a> ";
                        }
                        else {
                                echo " <div id='image'><img src='uploads/$photo_1' width='100' height='100' border='0'></div></a> "; 
                             }
                                echo " <div id='status'>$age - $city, $state</div>
                                       </div>
                                       </td>
                                ";
                          $c++;
                      }
    
                  /*
                  * May require a way to insert cleanup <td>s if the total number of cells
                  * is not evenly divisible by the number of cells per row. This is not an
                  * issue if you use floating <div>s for your layout.
                  */
    
                  // Closes the last HTML table row (or the first if there are no records)

                      echo " </tr>";
    
                  // Closes the HTML table
                      echo " </table> ";
                   
              // What to do if myqsl_query() returns FALSE instead of a resource
              }
              else 
                {
                  echo " <table border='0' width='700'><tr><td><div id='errorMsg'>Sorry, we didn't find any results based on your search criteria, please try again with more options. </div> </td></tr></table> ";
                }
           }

?>

 

 

 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.