Mailinglisten-Archive |
Hallo Norbert,
Norbert Pfeiffer schrieb:
>
> soundex() bringt es nicht wirklich:
> <?
> $WRT = array(
> 'Foto',
> 'Photo',
> 'Fotografie',
> 'Fotographie',
> 'Photografie',
> 'Photographie');
> foreach($WRT as $word) {
> echo $word.' = '.soundex($word)."\n";
> }
> ?>
> erzeugt:
> Foto = F300
> Photo = P300
> Fotografie = F326
> Fotographie = F326
> Photografie = P326
> Photographie = P326
>
Was gefällt dir daran nicht? Schaut doch gut aus...
Schau dir mal die UserComments unter [1] an. Vielleicht hilft dir das
weiter.
Da heißts z.B. (ziemlich weit unten):
<snip>
Although the standard soundex string is 4 characters long, and this is
what's returned by the php function, some database programs return an
arbitrary number of strings. MySQL, for instance.
The MySQL documentation covers this, recommending that you may wish to
use substring to output the standard 4 characters. Let's take
'Dostoyevski' as an example.
select soundex("Dostoyevski")
returns D2312
select substring(soundex("Dostoyevski"), 1, 4);
returns D231
PHP will return the value as 'D231'
So, to use the soundex function to generate a WHERE parameter in a MySQL
SELECT statement, you might try this:
$s = soundex('Dostoyevski');
SELECT * FROM authors WHERE substring(soundex(lastname), 1 , 4) = "' .
$s . '"';
Or, if you want to bypass the php function
$result = mysql_query("select soundex('Dostoyevski')");
$s = mysql_result($result, 0, 0);
<snip>
[1] http://de.php.net/soundex
HTH,
Andi
php::bar PHP Wiki - Listenarchive