Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> "Zamiana" z _pole_ na $row["_pole_"], pole == 123 -> $row["pole"] == 123
MoD
post 16.11.2004, 17:00:42
Post #1





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


W jaki sposób przekonwertować wyrażenie "pole == wartość" na "$row['pole'] == wartość" questionmark.gif
Próbowałem przy preg_replace z takim wyrażeniem:
Kod
#(.+)\s(.+)#

Co dało wynik "$row['pole ==']wartość" a tak być nie powinno (potrzebuję zbudować warunek dla EVAL). Z góry dziękuję za pomoc.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
bendi
post 16.11.2004, 17:22:22
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Jezlei juz checesz koniecznie wyrazeniami regularnymi to mozna tak:
  1. <?php
  2.  
  3. $sString = 'costam1 == wartosc1 costam2 == wartosc2 costam3 == wartosc3';
  4. preg_match_all( '%([w]+) == ([w]+)%s', $sString, $arMatches );
  5.  
  6. ?>

O ile sie nie myle tablica $arMatches[1] zawiera klucze a $arMatches[2] zawiera wartosci

Chociaz jezlei masz tylko jedna taka pare to wcale nie trzeba do tego wyrazen regularnych wystarczy explode:
  1. <?php
  2.  
  3. $sString = 'costam1 == wartosc1';
  4. list( $klucz, $wartosc ) = explode( '==', $sString );
  5. $row[$klucz]= $wartosc;
  6.  
  7. ?>

A jezeli chodzi Ci o pobieranie danych z bazy to funkcja mysq_fetch_array zwraca wyniki zapytania jako tablice asocjacyjna wiec zadna zamiana nie jest konieczna (tak mi sie jakos skojarzylo jak zobaczylem row, wiec sie prosze nie obrazac;)


--------------------
Go to the top of the page
+Quote Post
rogrog
post 16.11.2004, 17:37:13
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


Ze względów wydajnościowych zawsze jeśli jest to możliwe zamiast wyrażeń regularnych należy używać str_replace" title="Zobacz w manualu PHP" target="_manual.


--------------------
Go to the top of the page
+Quote Post
MoD
post 16.11.2004, 17:41:17
Post #4





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


chodzi o to, że "==" dałem jako przykład. Można przecież użyć ">" i wtedy skrypt się wali.


--------------------
Go to the top of the page
+Quote Post
bendi
post 16.11.2004, 17:44:07
Post #5





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Jezeli tam bedzie spacja odstepu (dokladnie jedna) miedzy na koncu klucza i na poczatku wartosci, to mozna tak:
  1. <?php
  2. $sString = 'costam1 == wartosc1  costam2 == wartosc2 costam3 == wartosc3';
  3. preg_match_all( '%([w]+) [^ w]+ ([w]+)%s', $sString, $arMatches );
  4. ?>


Sorka sprawdzilem zagadanienie i spacje wcale nie sa potrzebne winksmiley.jpg)

  1. <?php
  2. $sString = 'costam1 == wartosc1  costam2==wartosc2 costam3 == wartosc3';
  3. preg_match_all( '%([w]+)[W]+([w]+)%s', $sString, $arMatches );
  4. //$arMatches[1] - klucze
  5. //$arMatches[2] - wartosci
  6. ?>


Ten post edytował bendi 16.11.2004, 17:50:10


--------------------
Go to the top of the page
+Quote Post
MoD
post 16.11.2004, 18:12:23
Post #6





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


Okay, już sobie poradziłem. Dzięki


--------------------
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: 25.07.2025 - 10:06