Anzahl übereinstimmter Zeichen hintereinander ...

ultrakollega

Erfahrenes Mitglied
Hallo Leute.

Folgendes Problem. Ich hab eine Table, welche so aussieht:

TABLE: pricetable

| ID | CODE | PRICE |
-----------------------------
| 1 | 0664 | 0.270 |
| 2 | 06 | 0.048 |
| 3 | 0049 | 0.080 |
| 4 | 0055 | 0.510 |
| 5 | 0049152 | 0.340 |
-----------------------------

So nun habe ich eine Telefonnummer in einer Variablen.

PHP:
$NUMBER = "004915266778XXX";

Wie könnte ich es beispielsweise anstellen, das mir jener CODE
ausgewählt wird, welcher am meisten mit der Telefonnummer
übereinstimmt? In diesem Beispiel müßte ich den PRICE 0.340
zurückbekommen.

Mein bisheriger Lösungsweg war folgender:

Ich gehe in einer Schleife die ganze Table "pricetable" durch, und
kürze in jedem durchlauf die $NUMBER auf die Länge vom CODE und
vergleiche das dann.

Das ist blödsinn, wenn man bedenkt das im Falle von $NUMBER
erst ID 1 und dann ID 3 zutreffen würden.

Hat jemand eine Idee?

mfg

Ultrakollega
 
Würde es so machen (ist deiner Idee aber ziemlich ähnlich):
Du gibst neben ID,CODE und PRICE auch die Anzahl der Ziffern an. Anschließend überprüfst du mit substr ob die Angabe gültig ist, wenn ja abspeichern,
Anschließend kommen werden jene überprüft, die eins länger sind, bei bedarf, das gespeicherte Überschreiben und so weiter.

Ist zumindest effektiver als blind alle Einträge durch zu rattern.
 
Zurück