millsy007
03-06-2009, 12: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?
$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?