Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z funkcją array
--Justyna--
post 2.06.2012, 17:48:59
Post #1





Goście







Zamiasta kilka-kilkadziesiąt razy używac OR chciałam użyc funkcji array, ale nie dział mi to poprawnie. Pod spodem mój kod
  1. $array = array(
  2. 'slowo1',
  3. 'slowo2',
  4.  
  5. );
  6.  
  7. $zap = "DELETE FROM tabela WHERE kontakt LIKE '%$array%' OR email='$array' ";
  8. $wykonaj = mysql_query($zap);


Go to the top of the page
+Quote Post
konrados
post 2.06.2012, 17:58:06
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


Zainteresuj się REGEXP, przykład:
  1. $vars=implode('|',$array)
  2. SELECT * from tabela where kontakt REGEXP '$vars';
Go to the top of the page
+Quote Post
--Justyna--
post 2.06.2012, 18:06:00
Post #3





Goście







Otrzymałam błąd :

Parse error: syntax error, unexpected T_VARIABLE
w linijce SELECT * from tabela where kontakt REGEXP '$vars';
Go to the top of the page
+Quote Post
konrados
post 2.06.2012, 18:08:50
Post #4





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


A Ty to tak po prostu skopiowałaś? No to zapytanie musisz wrzucić przecież do funk. mysql_query


  1. $vars=implode('|',$array);
  2. mysql_query("DELETE FROM tabela where kontakt REGEXP '$vars' OR email REGEXP '$vars' ");


Edit: brakowało średnika.

Ten post edytował konrados 2.06.2012, 18:10:27
Go to the top of the page
+Quote Post
--Justyna--
post 2.06.2012, 18:14:28
Post #5





Goście







Uzywam $wykonaj = mysql_query($zap);
tak wiec moja funkcja OK.

Domyśliłam sie ze brakuje srednika, dodalam go i skrypt dobrze się wykonal, ale strasznie długo mielił zanim się wykonał. Czy to jest optymalny sposób?
Go to the top of the page
+Quote Post
konrados
post 2.06.2012, 18:16:52
Post #6





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


A ile Ty masz tam rekordów?

Może pomoże założenie indeksów na 'kontakt' i 'email'.
Go to the top of the page
+Quote Post
--Justyna--
post 2.06.2012, 18:24:07
Post #7





Goście







Rekordów jest kilkanaście tysiecy.
Skrypt działa poprawnie poza faktem, że zamula i obciąża serwer. Czy można użyc optymalniejszej funkcji?
Go to the top of the page
+Quote Post
konrados
post 2.06.2012, 18:28:39
Post #8





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

Ostrzeżenie: (0%)
-----


No optymalniejsze jest chyba jednak użycie OR i zwykłego = lub like (wyrażenia regularne zapewne zajmują więcej czasu).

Miało być wygodnie a nie wydajnie:)


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:21