I've tried to post on a few other forums for information on how to write a very simple search script that will allow multiple search options to search a mysql database. I have a script written that searches by a users last name, but I want to also offer the option to search by a users city or state. I have a couple radio buttons in the html, but don't have any idea how to manipulate the php. Any suggestions? Here's the code I have:

<?php
	
	include('config.php'); 

	$SQL_FROM = 'adr';
	$SQL_WHERE = 'last';
		

?>
<?php
	$searchq		=	strip_tags($_GET['q']);
	$getRecord_sql	=	'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
	$getRecord		=	mysql_query($getRecord_sql);
	if(strlen($searchq)>0){
	// ---------------------------------------------------------------- // 
	// AJAX Response													// 
	// ---------------------------------------------------------------- // 
	
	echo '<ul>';
	while ($list = mysql_fetch_array($getRecord)) {?>
		<li><a href="runners2.php?name=<?php echo urlencode($list['first'].' '.$list['last']); ?>"><?php echo $list['last']; ?> <small><?php echo $list['first']; ?></small><small><?php echo $list['city']; ?></small><small><?php echo $list['age']; ?></small></a></li>
	<?php } 
	echo '</ul>';
	?>
<?php } ?>

The bottom portion is an AJAX response that makes an auto suggestion according to what letters you type. Thanks in advance!

I'm assuming that you have to employ an IF...ELSE statment, but I don't know how to utilize this with radio buttons...ugghh

thanks

Member Avatar for langsor

Played around with your code a little bit ...

<?php

  include('config.php'); 

  $SQL_FROM = 'adr';
  // for forms, use method="POST" unless good reason not to
  $radio = $_POST['radio_name']; 
  switch ( $radio ) {
    case 'first': $SQL_WHERE = 'first'; break;
    case 'city': $SQL_WHERE = 'city'; break;
    default: $SQL_WHERE = 'last';
  }

  // or just use ... $SQL_WHERE =  $_POST['radio_name'];

  $searchq = strip_tags( $_POST['q'] );
  $getRecord_sql = 'SELECT * FROM '.$SQL_FROM.' WHERE '.$SQL_WHERE.' LIKE "'.$searchq.'%"';
  $getRecord = mysql_query($getRecord_sql);
  if( strlen($searchq) > 0 ){
  // ---------------------------------------------------------------- // 
  // AJAX Response                          // 
  // ---------------------------------------------------------------- // 
  print '     <ul>';
  while ( $list = mysql_fetch_object($getRecord) ) {
    $name = urlencode( $list->first.' '.$list->last );
    print <<<ENDLINE
        <li><a href="runners2.php?name=$name">$list->last <small>$list->first $list->city $list->age</small></a></li>
ENDLINE;
  }
  print '     </ul>';
?>

You could just use the value of the radio button as the field name, but then you're out a default field unless you have a radio button for 'last' value too, which could be checked in the html by default...otherwise use a switch statement to route your radio value ...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.