Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z funkcją array
Forum PHP.pl > Forum > Przedszkole
-Justyna-
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);


konrados
Zainteresuj się REGEXP, przykład:
  1. $vars=implode('|',$array)
  2. SELECT * from tabela where kontakt REGEXP '$vars';
-Justyna-
Otrzymałam błąd :

Parse error: syntax error, unexpected T_VARIABLE
w linijce SELECT * from tabela where kontakt REGEXP '$vars';
konrados
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.
-Justyna-
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?
konrados
A ile Ty masz tam rekordów?

Może pomoże założenie indeksów na 'kontakt' i 'email'.
-Justyna-
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?
konrados
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:)


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.