Hi Ian,
I tried a couple different things, trying to chop off leading articles.

I didn't want to maintain a 2nd column for titles, but eventually had to
succumb to this.

(My difficulty is that I'm using French and English titles (for a
bilingual interface), so I actually have four fields:
my fields are labelled as follows:

nameE (english title), nameF (french title), namesortE (english title
with leading article removed), namesortF
(with french leading article removed.

When I enter a title into my database, using a php form,
the leading article is lopped off the front off the title and
this new form of the title is thrown into the record's namesortE
column.

(the same thing happens for the french fields).

Leading articles that I want to remove are stored in
a text file called 'noisewords.txt'
my script looks for words in the text file, and if it
finds a match between the text file entries and the 
title I've just entered, it removes the appearance of the word, in
the title.

the 'varnameE' and 'varnameF' fields may throw you off.
it is used as working title.  our records go by more than one 
title so in order to view the records by title or by variant title
(alphabetically skipping leading articles) I've had to have a separate
table
for titles just for the sake of holding variant names.

please overlook my coding practices in the snippet below. I've had no
formal
training in programming, since my trs-80 days learning BASIC on 2K radio
shack computers.

be assured though, the following does work for me.

I came up with this solution thanks to 

olinux

who forwarded me the URL for this article:


http://phpbuilder.com/columns/clay19990421.php3 which even includes a
list of "noisewords" for you.

Cameron  (code below)
*******************

following is the code I currently use:
stage==1 is the process of data being entered
into the database.  stage==2 is the input form that
supplies the data for stage==1.


<?php

if($stage == 1) 
{
// PROCESS ADD NEW DATABASE RECORD FORM
$connect = mysql_connect("localhost", "$username", "$password");

$select = mysql_select_db("bases");

// INSERT NEW DATA INTO PRINCIPLE TABLE

while(list($key, $vala) = each ($accessID))
while(list($key, $valf) = each ($formatID)) 
while(list($key, $valu) = each ($urlID))
while(list($key, $valv) = each ($vendorID))


{
$query = "INSERT INTO principle (nameE, nameF, 
daterange, descriptionE, subjectE, notesE, descriptionF, 
subjectF, notesF, license, accessID, formatID, urlID, vendorID, orbispo,
livedate) VALUES ('$nameE', '$nameF', '$daterange', 
'$descriptionE', '$subjectE', '$notesE', '$descriptionF', '$subjectF',
'$notesF', '$license', 
'$vala', '$valf', '$valu', '$valv', '$orbispo', '$livedate')";

$result = mysql_query($query)
OR die($query . mysql_error());
}
?>
<?php 

// INSERT NEW DATA INTO SOFTWAREDETAILS TABLE

while(list($key, $vals) = each ($softwareID))

{
$query_2 = "INSERT INTO softwaredetails (baseID, softwareID) VALUES
('$newbaseID', '$vals')";
$result_2 = mysql_query($query_2)
OR die($query . mysql_error());
}
?>
<?php 

// INSERT NEW DATA INTO VARNAME TABLE

{
$query_3 = "INSERT INTO varname (varnameE, varnameF, baseID) VALUES
('$nameE', '$nameF', '$newbaseID')";
$result_3 = mysql_query($query_3)
OR die($query . mysql_error());
}
?>

<?php

//TRIMSCRIPT FOR ENGLISH NAMESORT COLUMN IN TABLE PRINCIPLE

$query = "select nameE, baseID from principle";
$result = mysql_query($query);
$number = mysql_numrows($result);
$j = 0;
WHILE ($j < $number) {
 
$title = mysql_result($result,$j,"nameE");
$qid = mysql_result($result,$j,"baseID");
$noise_words = file ("noisewords.txt");
$filtered = $title;
$filtered = ereg_replace("^"," ",$filtered);

for ($i=0; $i < count($noise_words); $i++) {
$filterword = trim($noise_words[$i]);
$filtered = eregi_replace(" $filterword "," ",$filtered);
}

$filtered = trim($filtered); 
$filtered = addslashes($filtered); 
$querywords = ereg_replace(",","",$filtered); 

$entersorts = "UPDATE principle set namesortE = \"$querywords\" WHERE
baseID = $qid";
$result_0 = mysql_query($entersorts)
OR die($entersorts . mysql_error());


$j++;
}

//E-STAT special case update ENGLISH
$estate = "UPDATE principle set namesortE = \"E-STAT\" WHERE baseID =
73";
$result_0 = mysql_query($estate)
OR die($estate . mysql_error());

?>
<?php
//TRIMSCRIPT FOR FRENCH NAMESORT COLUMN IN TABLE PRINCIPLE

$query = "select nameF, baseID from principle";
$result = mysql_query($query);
$number = mysql_numrows($result);
$j = 0;
WHILE ($j < $number) {
 
$title = mysql_result($result,$j,"nameF");
$qid = mysql_result($result,$j,"baseID");
$noise_words = file ("noisewords.txt");
$filtered = $title;
$filtered = ereg_replace("^"," ",$filtered);

for ($i=0; $i < count($noise_words); $i++) {
$filterword = trim($noise_words[$i]);
$filtered = eregi_replace(" $filterword "," ",$filtered);
}

$filtered = trim($filtered); 
$filtered = addslashes($filtered); 
$querywords = ereg_replace(",","",$filtered); 

$entersorts = "UPDATE principle set namesortF = \"$querywords\" WHERE
baseID = $qid";
$result_0 = mysql_query($entersorts)
OR die($entersorts . mysql_error());


$j++;
}

//E-STAT special case update FRENCH
$estatf = "UPDATE principle set namesortF = \"E-STAT\" WHERE baseID =
73";
$result_0 = mysql_query($estatf)
OR die($estatf . mysql_error());


?>
<?php
//TRIMSCRIPT FOR ENGLISH VARNAMESORT COLUMN IN TABLE VARNAME


$query = "select varnameE, varnameID from varname";
$result = mysql_query($query);
$number = mysql_numrows($result);
$j = 0;
WHILE ($j < $number) {
 
$title = mysql_result($result,$j,"varnameE");
$qid = mysql_result($result,$j,"varnameID");
$noise_words = file ("noisewords.txt");
$filtered = $title;
$filtered = ereg_replace("^"," ",$filtered);

for ($i=0; $i < count($noise_words); $i++) {
$filterword = trim($noise_words[$i]);
$filtered = eregi_replace(" $filterword "," ",$filtered);
}

$filtered = trim($filtered); 
$filtered = addslashes($filtered); 
$querywords = ereg_replace(",","",$filtered); 

$entersorts = "UPDATE varname set namesortE = \"$querywords\" WHERE
varnameID = $qid";
$result_0 = mysql_query($entersorts)
OR die($entersorts . mysql_error());


$j++;
}

//E-STAT special case update ENGLISH
$estate = "UPDATE varname set namesortE = \"E-STAT\" WHERE varnameID =
64";
$result_0 = mysql_query($estate)
OR die($estate . mysql_error());

?>
<?php

//TRIMSCRIPT FOR FRENCH VARNAMESORT COLUMN IN TABLE VARNAME

$query = "select varnameF, varnameID from varname";
$result = mysql_query($query);
$number = mysql_numrows($result);
$j = 0;
WHILE ($j < $number) {
 
$title = mysql_result($result,$j,"varnameF");
$qid = mysql_result($result,$j,"varnameID");
$noise_words = file ("noisewords.txt");
$filtered = $title;
$filtered = ereg_replace("^"," ",$filtered);

for ($i=0; $i < count($noise_words); $i++) {
$filterword = trim($noise_words[$i]);
$filtered = eregi_replace(" $filterword "," ",$filtered);
}

$filtered = trim($filtered); 
$filtered = addslashes($filtered); 
$querywords = ereg_replace(",","",$filtered); 

$entersorts = "UPDATE varname set namesortF = \"$querywords\" WHERE
varnameID = $qid";
$result_0 = mysql_query($entersorts)
OR die($entersorts . mysql_error());


$j++;
}

//E-STAT special case update FRENCH
$estatf = "UPDATE varname set namesortF = \"E-STAT\" WHERE varnameID =
64";
$result_0 = mysql_query($estatf)
OR die($estatf . mysql_error());

{
print ("<a href=\"menu.php3\"> Return to main menu</a> 
<br><a href=\"entre5.php3?stage=2\">Add another new database record</a>
<br><a href=\"namesortF.php3\">View resulting namesortF column</a>
<br><a href=\"namesortE.php3\">View resulting namesortE column</a>
<br><a href=\"varnamesortF.php3\">View resulting varnamesrtF column</a>
<br><a href=\"varnamesortE.php3\">View resulting varnamesortE column</a>
(doublecheck for E-STAT)");
} 
}elseif($stage == 2)
{
// DATA ENTRY FORM to ADD A NEW DATABASE RECORD into the system
?>

<FORM METHOD=POST ACTION="<?php print ("$PHP_SELF"); ?>">
<table><tr><td colspan="2">
<p><h1>New DATABASE record - Entry Form</h1></p></td></tr>

<?php
$connect = mysql_connect("localhost", "username","password");

$select = mysql_select_db("bases");

$query_max = "SELECT MAX(baseID) FROM principle";

$result_max = mysql_query($query_max);
while($lastbaseID = mysql_fetch_array($result_max))
$baseID = ($lastbaseID[0] + 1);
{
echo ("<tr><td valign=\"top\" \"nowrap\" ><b><font color=\"#FF0000\">New
Database Unique Identifier: &nbsp;</b></td>
<td valign=\"top\" \"nowrap\"><b>&nbsp;$baseID</b>&nbsp;&nbsp;(cannot be
edited).
<input type=\"hidden\" name=\"newbaseID\"
value=\"$baseID\"></td></tr>");
}
?>
<tr>
<td valign="top" "nowrap" ><b><font color="#FF0000">Your system UserName
&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text"
name="username"></font></td></tr>
<tr><td valign="top" "nowrap"><b><font color="#FF0000">Your system
PAssWord: (english):&nbsp;</b></td>
<td valign="top" "nowrap"><input type="password"
name="password"></font></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Name
(english):&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="nameE"></td></tr>
<tr><td valign="top" "nowrap"><b>Name (french):&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="nameF"></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Date Range of
database contents:&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="daterange"></td></tr>
<tr><td valign="top" "nowrap"><b>Description (english):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="descriptionE" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Subjects covered
(english):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="subjectE" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr><td valign="top" "nowrap"><b>Notes (english):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="notesE" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Description
(french):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="descriptionF" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr><td valign="top" "nowrap"><b>Subjects covered
(french):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="subjectF" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Notes
(french):&nbsp;</b></td>
<td valign="top" "nowrap"><TEXTAREA name="notesF" cols="30"
rows="4"></TEXTAREA></td></tr>
<tr><td valign="top" "nowrap"><b>Number of licensed
users:&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="license"></td></tr>
<tr bgcolor="#99CCCC">
<td valign="top" "nowrap"><b>Live date:&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="livedate"></td></tr>
<tr><td valign="top" "nowrap"><b>ORBIS purchase order
number:&nbsp;</b></td>
<td valign="top" "nowrap"><input type="text" name="orbispo"></td></tr>
<tr bgcolor="#99CCCC">
<td valign="top" "nowrap"><b>Choose its ACCESSTYPE</td>
<td valign="top" "nowrap"><SELECT NAME="accessID[]" SIZE="1">
<?php
$query = "select accessID, accessE FROM accesstype ORDER BY accessE";
$result = mysql_query ("$query"); 

while ($access = mysql_fetch_array ($result)) 
{
print ("<OPTION VALUE=\"$access[0]\">$access[1]\n");
}
?>
</SELECT></td></tr>
<tr><td valign="top" "nowrap"><b>Choose its FORMAT:</td>
<td valign="top" "nowrap"><SELECT NAME="formatID[]" SIZE="1">
<?php

$query_format = "select formatID, formatE FROM format ORDER BY formatE";

$result_format = mysql_query ("$query_format"); 
while ($format = mysql_fetch_array ($result_format)) 
{
print ("<OPTION VALUE=\"$format[0]\">$format[1]\n");
}
?>
</SELECT></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Choose its URL:</td>
<td><SELECT NAME="urlID[]" SIZE="1">
<?php
$query_url = "select urlID, urlE FROM url ORDER BY urlE";

$result_url = mysql_query ("$query_url"); 
while ($url = mysql_fetch_array ($result_url)) 
{
print ("<OPTION VALUE=\"$url[0]\">$url[1]\n");
}
?>
</SELECT></td></tr>



<tr>
<td valign="top" "nowrap"><b>Choose any Required software:</td>
<td><SELECT NAME="softwareID[]" SIZE="1" MULTIPLE>
<?php
$query_soft = "select softwareID, softwareE FROM software ORDER BY
softwareE";

$result_soft = mysql_query ("$query_soft"); 
while ($software = mysql_fetch_array ($result_soft)) 
{
print ("<OPTION VALUE=\"$software[0]\">$software[1]\n");
}
?>
</SELECT></td></tr>
<tr bgcolor="#99CCCC"><td valign="top" "nowrap"><b>Choose its
vendor:</td>

<td><SELECT NAME="vendorID[]" SIZE="1">
<?php
$query_vend = "SELECT vendorID, vendor FROM vendor ORDER BY vendor";

$result_vend = mysql_query ("$query_vend"); 
while ($vendor = mysql_fetch_array ($result_vend)) 
{
print ("<OPTION VALUE=\"$vendor[0]\">$vendor[1]\n");
}
?>
</SELECT></td>



</tr>
<tr>
<td><p>
<INPUT TYPE="hidden" name="stage" value="1">
<INPUT TYPE="submit" name="submit" value="submit this new database">
</p></td></tr>
</table>
</center>
</FORM>






"Ian M. Evans" wrote:
> 
> I just saw your posting and wondered if you ever rec'd an answer.
> 
> I'm looking to alphabetize film titles while ignoring 'a', 'an' and 'the'.
> 
> It's too bad they don't realize a lot of people would like this and add it
> to the SQL language so you could do something like:
> 
> SELECT date, titles FROM movies ORDER BY date DESC, titles LIBRARY
> 
> --
> Ian Evans
> Digital Hit Entertainment
> http://www.digitalhit.com

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to