frtools
asked on
PHP // MYSQL get multiple rows if any and display them
If a search finds multiple rows I want to display them, I don't know if the while loop needs to be in my query function, or if I need to use /mysql_fetch_assoc()/
//this works and pulls in 1 record
function get_order_info($search_value, $search_field, $table){
global $mysqlconn;
$query_error="Data Not Found";
// building query
$query="SELECT * ";
if($table=="usps"){
$query .="FROM ". USPS_TABLE ;
}
else{
$query .="FROM ". UPS_TABLE ;
}
$query .= " WHERE ". $search_field;
$query .= " = ". $search_value;
$query .= " LIMIT 0, 10";
$query_result_set = mysql_query($query, $mysqlconn)
//this test to see if there is actual data will reurn false if the query cannot find anything
if($order_info= mysql_fetch_array($query_result_set)){
return $order_info;
}else{
return $query_error;
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
ok here is the code and i want to display multiple rows if there is any. My form brings in a search string, my main <?php> block checks for the post variable;
//This is main .php page calls functions
<?php
$table="usps";
//Form validation check for search
if(isset($_POST['form_zipcode'])){
while($sel_order=search_for($_POST['form_zipcode'], $table_field,$table)){
echo output_track_info($sel_order);
}
}else{
echo "Enter a search above.";
}
?>
//functions.php
function search_for($form_result, $table_field, $table){
$end="END OF SEARCH";
//Call functions to get array data, and clickable link data
while($result= get_order_info($form_result, $table_field ,$table)){
return $result;
}
return $end;
}
function get_order_info($search_value, $search_field, $table){
global $mysqlconn;
$end="END OF SEARCH";
$query_error="Data Not Found";
// building query
$query="SELECT * ";
if($table == "usps"){
$query .="FROM ". USPS_TABLE ;
}
else{
$query .="FROM ". UPS_TABLE ;
}
$query .= " WHERE ". $search_field;
$query .= " = ". $search_value;
$query .= " LIMIT 5, 10";
$query_result_set = mysql_query($query, $mysqlconn);
//this test to see if there is actual data
if(!$query_result_set){
die("Failed to find search criteria ". mysql_error());
}else{
while ($row = mysql_fetch_array($query_result_set)){
return $row;
}
}
return $end;
}
You can also return the result as a global array if you need to use the recordset later.
Is there a particular field you are interested in extracting?
Is there a particular field you are interested in extracting?
//This is main .php page calls functions
<?php
$table="usps";
//Form validation check for search
if(isset($_POST['form_zipcode'])){
while($sel_order=search_for($_POST['form_zipcode'], $table_field,$table)){
echo output_track_info($sel_order);
}
}else{
echo "Enter a search above.";
}
?>
//functions.php
global $data;
function search_for($form_result, $table_field, $table){
$end="END OF SEARCH";
//Call functions to get array data, and clickable link data
while($result= get_order_info($form_result, $table_field ,$table)){
return $result;
}
return $end;
}
function get_order_info($search_value, $search_field, $table){
global $mysqlconn;
$end="END OF SEARCH";
$query_error="Data Not Found";
// building query
$query="SELECT * ";
if($table == "usps"){
$query .="FROM ". USPS_TABLE ;
}
else{
$query .="FROM ". UPS_TABLE ;
}
$query .= " WHERE ". $search_field;
$query .= " = ". $search_value;
$query .= " LIMIT 5, 10";
$query_result_set = mysql_query($query, $mysqlconn);
//this test to see if there is actual data
if(!$query_result_set){
die("Failed to find search criteria ". mysql_error());
}else{
$x=0;
while ($row = mysql_fetch_array($query_result_set)){
foreach ($row as $key => $value){
$data[$x][$key]=$value
}
$x++;
}
return $data;
}
}
Typo fixed.
Again is there a certain field you need for the tracking function?
if so instead of the forloop you could do:
$data[$x] = $row['{field_name_here}'];
Again is there a certain field you need for the tracking function?
if so instead of the forloop you could do:
$data[$x] = $row['{field_name_here}'];
//This is main .php page calls functions
<?php
$table="usps";
//Form validation check for search
if(isset($_POST['form_zipcode'])){
while($sel_order=search_for($_POST['form_zipcode'], $table_field,$table)){
echo output_track_info($sel_order);
}
}else{
echo "Enter a search above.";
}
?>
//functions.php
global $data;
function search_for($form_result, $table_field, $table){
$end="END OF SEARCH";
//Call functions to get array data, and clickable link data
while($result= get_order_info($form_result, $table_field ,$table)){
return $result;
}
return $end;
}
function get_order_info($search_value, $search_field, $table){
global $mysqlconn;
$end="END OF SEARCH";
$query_error="Data Not Found";
// building query
$query="SELECT * ";
if($table == "usps"){
$query .="FROM ". USPS_TABLE ;
}
else{
$query .="FROM ". UPS_TABLE ;
}
$query .= " WHERE ". $search_field;
$query .= " = ". $search_value;
$query .= " LIMIT 5, 10";
$query_result_set = mysql_query($query, $mysqlconn);
//this test to see if there is actual data
if(!$query_result_set){
die("Failed to find search criteria ". mysql_error());
}else{
$x=0;
while ($row = mysql_fetch_array($query_result_set)){
foreach ($row as $key => $value){
$data[$x][$key]=$value;
}
$x++;
}
return $data;
}
}
ASKER
Figured it out I need to echo inside the while loop not return;
Thanx everyone
Thanx everyone
ASKER