TS: WHERE in PHP

Beitrag lesen

Hallo nochmal,

ich habe ein kleines Problem, weiß nicht so recht wie ich es lösen soll.

Das habe ich Dir mehrfach versucht mitzuteilen.

Und dann habe ich Dir hier noch eine weitere Hilfestellung als Beispiel vorbereitet, wie Du das Problem elegant lösen könntest:

delimiter //

CREATE FUNCTION normalizeTelefon (number varchar(50)) returns varchar(50)
begin
	declare counter int default 1;
	declare len int;
	declare allowed varchar(10) default '0123456789';
	declare result varchar(50) default '';
	
	set len = char_length(number);

	while counter <= len DO
		if locate(substr(number, counter, 1), allowed) > 0 then
			set result = concat(result, substr(number, counter, 1));
		end if; 

	   set counter = counter + 1;
	end while; 
	
	return result;
end //

delimiter ;

Diese Funktion fügst Du deiner Dartenbank einfach hinzu. Und dann kannst Du z.B. folgendermaßen abfragen:


    select `id`, `telefonnummer` 
    from `telefon` 
    where normalizeTelefon($suchnummer) 
        like concat ('%', normalizeTelefon(`telefonnummer`));
    

$suchnummer musst Du in der Abfrage ersetzen gegen die gesuchte Nummer.
In der Funktion musst Du eventuell noch das '+49' oder ähnlich berücksichrtigen, wenn es notwendig ist.

Viel Erfolg

TS