2

i have a search page that allow user to search about other members using 3 types even by

  • governorate
  • district
  • village

and i am using one form and one button for all the three types with 3 different hidden values

but the problem is that the system do not make action when select just the governorate

so can anyone help me ????

code:

<?php
//**********search by locationn***************************************//
if(isset($_POST['listbyq']))
{    
//********************by governorate**************************************//
   if($_POST['listbyq']=="by_gov")
   {
       $bygov = $_POST['governorate'];
       $sql = mysql_query("SELECT user_id,first_name, last_name, birth_date, registered_date, governorate_name 
                        FROM members u INNER JOIN  governorate g 
                        ON u.governorate = g.governorate_id WHERE governorate = '$bygov'")or die(mysql_error("Error: querying the governorate"));

       $num_row = mysql_num_rows($sql);
       if($num_row > 0 )
       {
           while($row = mysql_fetch_array($sql))
           {
              $row_id = $row['user_id'];
              $row_first_name =  $row['first_name'];
              $row_last_name =  $row['last_name'];
              $row_birthdate =  $row['birth_date'];
              $row_registered_date = $row['registered_date'];
              $row_gov = $row['governorate_name'];

                ////***********for the upload image*************************//
         $check_pic="members/$row_id/image01.jpg";
         $default_pic="members/0/image01.jpg";
         if(file_exists($check_pic))
         {
             $user_pic="<img src=\"$check_pic\"width=\"120px\"/>";
         }
         else
         {
             $user_pic="<img src=\"$default_pic\"width=\"120px\"/>";
         }

          $outputlist.='
     <table width="100%">
                 <tr>
                    <td width="23%" rowspan="4"><div style="height:120px;overflow:hidden;"><a href =              "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$user_pic.'</a></div></td>
                    <td width="14%"><div  align="right">Name:</div></td>
                    <td width="63%"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$row_first_name.' '.$row_last_name.'</a></td>
                    </tr>

                    <tr>
                      <td><div align="right">Birth date:</div></td>
                      <td>'.$row_birthdate.'</td>
                    </tr>
                    <tr>
                     <td><div align="right">Registered:</div></td>
                     <td>'.$row_registered_date.'</td>
                    </tr>

                    <tr>
                     <td><div align="right">Governorate</div></td>
                     <td>'.$row_gov.'</td>
                    </tr>
                    </table>
                    <hr />
            ';

           }
       }

   }
}
else
{
    $errorMSG = "No Member has the listed location!!";
} 
?>

HTML CODE

  <table width="94%" height="63">
                <tr>
                  <td width="29%"><form id="form1" method="post" action="member_search2.php">

                  <h3>Search by Location</h3><br />
                  <?php require_once('location_fields.php'); ?>
                    <input type="hidden" name="listbyq" value="by_gov" />
                    <input type="hidden" name="listbyq" value="by_dist" />
                    <input type="hidden" name="listbyq" value="by_city" />
                    <input type="submit" name="searchbylocation" id="button" value="go" />
                  </form></td>
</tr>
</table>
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
LebDev
  • 467
  • 3
  • 10
  • 22

1 Answers1

0

This is because you are assigning the same name to all your input field name="listbyq", so change name to be different among them so you can retrieve in different variables

<input type="hidden" name="listbyq" value="by_gov" />
<input type="hidden" name="listbyqa" value="by_dist" />
<input type="hidden" name="listbyqb" value="by_city" />

Now you can use them respectively in your if statements

 if($_POST['listbyq'] == 'by_gov')
 if($_POST['listbyqa'] == 'by_dist')
 if($_POST['listbyqb'] == 'by_city')

Then I would like to remember you that mysql_ functions are deprecated so i would advise you to switch to mysqli or PDO and indeed you are at risk of sql injection, have a look here How can I prevent SQL injection in PHP?. You should use prepared statment to avoid any risk

Community
  • 1
  • 1
Fabio
  • 23,183
  • 12
  • 55
  • 64
  • ohhh ok but the problem is that i just wrote the php part for the **gov** but even this do not work – LebDev May 18 '13 at 15:08
  • @user2396708 Try to change yor form as i stated and run the give part, let's see if it works now that you will not ovveride values twice – Fabio May 18 '13 at 15:11
  • i did add an error msg if their was no user user that have the selected gov but it did not show – LebDev May 18 '13 at 15:19