http://compcanlit.usherbrooke.ca/new1/db/index.php?ausenquiry=e
http://compcanlit.usherbrooke.ca/new1/db/index.php?ausenquiry=é

It still sorts "é" and "e" separately, but without a parse error:

$first = array('à', 'é');
$second  = array('a', 'e');

usort($authors, create_function('$a,$b','
        $a = str_replace($first, $second, $a);
        $b = str_replace($first, $second, $b);
        return strcasecmp($a,$b);'));

Back to the drawing board? I tried this too:

$first = array('à', 'é', 'À', 'É');
$second  = array('a', 'e', 'A', 'É');

Ideas? Thanks,
John


> Parse error on line 40:
>
> 39> usort($authors, create_function('$a,$b','
> 40>          $a = str_replace(array('é', 'à'), array('e', 'a'), $a);
> 41>          $b = str_replace(array('é', 'à'), array('e', 'a'), $b);
> 42>          return strcasecmp($a,$b);'));

<?php

if(!$ausenquiry) $ausenquiry ="a";

echo "<tr><td>
Note: A star, \"*\", indicates that the author uses a pseudonym.<br>Noter : Une 
étoile, \"*\", indique que cet auteur est connu par un nom de plume.

<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n";


######################################################
$myconnection = mysql_connect($server,$user,$pass);
mysql_select_db($db,$myconnection);

$news = mysql_query("select id,AUS from $table");

######################################################
$authors = array();
$author_list = array();

while ($mydata = mysql_fetch_object($news))
{
  $mydata->AUS = str_replace(" ;", ";", $mydata->AUS);
  $mydata->AUS = str_replace("; ", ";", $mydata->AUS);
  $tempauthors = explode(";", $mydata->AUS);
  foreach ($tempauthors as $singleauthor)
  {
    if ($singleauthor <> "")
    {
      array_push($authors, $singleauthor);
      $author_list[$singleauthor][] = $mydata->id; // use an associative array...
   }
  }
}

#sort($authors);
#usort($authors, create_function('$a,$b','return strcasecmp($a,$b);'));

#usort($authors, create_function('$a,$b','
#         $a = str_replace(array('é', 'à'), array('e', 'a'), $a);
#         $b = str_replace(array('é', 'à'), array('e', 'a'), $b);
#         return strcasecmp($a,$b);'));

$first = array('à', 'é', 'À', 'É');
$second  = array('a', 'e', 'A', 'É');

usort($authors, create_function('$a,$b','
        $a = str_replace($first, $second, $a);
        $b = str_replace($first, $second, $b);
        return strcasecmp($a,$b);'));


foreach (array_count_values ($authors) as $author=>$count)
{

 if((strtolower(substr($author, 0, 1)) == $ausenquiry))
 {

  echo "<tr bgcolor=\"#D3DCE3\">";
   echo "<th align=\"left\" colspan=\"2\"><a 
href=\"".$SCRIPT_NAME."?searchenquiry=".urlencode($author)."\">".$author."</a> 
<small>[&lt;--Search Entire Database]</small></th>";
   echo "<th align=\"right\" width=\"5%\" nowrap>(".$count." ";
    if($count > 1)
    {echo "records found/trouvés)";}
    else{echo "record found/trouvé)";}
   echo"</th></tr>\n";

   echo "<tr bgcolor=\"#F5F5F5\"><td>&nbsp;</td>";
   echo "<td align=\"left\">";
   $temp = "";
   foreach ($author_list[$author] as $ausid)
   {
   $temp .= "<a target=\"printwindow\" 
href=\"print.php?id=".urlencode($ausid)."\">".$ausid."</a>, ";
   }
   $temp = substr("$temp", 0, -2);
   echo "$temp</td>";
   echo "<td>&nbsp;</td>";
  echo "</tr>\n";
 }
}

mysql_close($myconnection);
######################################################
echo "</table>
</td>
</tr>\n";

?>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to