...

View Full Version : Combining Query Result Rows Into Array



millsy007
03-06-2009, 01:57 AM
I have a function that checks for duplicate names, currently it works off one column:


$query = "
SELECT seat
FROM journey
WHERE shuttle_id = '$id'
AND seat LIKE '$name%'
";

$qry_result = mysql_query($query) or die(mysql_error());
$num_rows = mysql_num_rows($qry_result);
if ($num_rows > 0) { // if it exists, then put all similar names into an array

while($row = mysql_fetch_array($qry_result))
{
$similar_names[] = $row[seat];

}
// check in the similar names array if your name exists, if so, adds 1 to suffix, then check again until you find your final suffix.
$suffix = 1;
while (in_array($name.$suffix, $similar_names))
$suffix++;
$name = $name.$suffix;

$finalname = $name;
}
else
{
//$name is already unique. no suffix needed then.
$final_name = $name;
}

However I have multiple seats so is there a way that I could check against all the seats so my query would be:


$query = "
SELECT seat1, seat2, seat3
FROM journey
WHERE journey.shuttle_id = '$id'
AND seat1 LIKE '$name%'
";

and then somehow combine the result into the array that I check against:

$similar_names[] = $row[seat] //And $row[seat2] And $row[seat3]?

Could I perhaps use the array_combine?

ninnypants
03-06-2009, 04:20 AM
I think to accomplish this you may need to check the values of the seat fields outside of mysql.

Maybe


$query = "SELECT * FROM journey WHERE shuttle_id = '$id'";

$qry_result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_array($qry_result, MYSQL_NUM)){
for($i=0; $i<count($row); $i++){
$pos = stripos($row[$i],$name);
if($pos && $pos <= 1){
$similar_names[] = $row[$i];
}
}
}



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum