Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Porównywanie stringów
szczurek
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

Ostrzeżenie: (10%)
X----


Witam, nie wiem czy ja jestem ślepy czy rzeczywiście nie ma czegoś takiego w manualu. Chodzi mi o porównywanie jednego stringa z tablicą stringów. Czyli mam "test" i tablicę array(testy, testtowanie, test);
Chciałbym sprawdzać czy w tej tablicy występuje taki ciąg.

Po co mi to potrzebne. Wymyśliłem sobie że napiszę klasę do obsługi bazy danych dla jednej aplikacji. Do każdej tabeli dopisuje w konstruktorze listę pól i później korzystam z nich. Przy operacji update nie wykorzystuję pierwszego pola bo mi się nigdy nie zmienia a resztę pobiera sobie funkcja z tablicy zdefiniowanej w konstruktorze. I teraz w jednej z klas potrzebuję wykluczyć jedno z pól. Mogę napisać dodatkową funkcję ale nie po to sobie taką ładną klasę napisałem i z niej dziedziczę żeby teraz wpisywać pole=wartość
Chcę dorobić dodatkowy parametr który będzie tablicą pól nie przeznaczonych do aktualizacji.

Wartości dopisuję w pętli foreach;

  1. <?php
  2. $aPolaWartosci=array();
  3.  $i=0;
  4.  foreach($this->aPola as $sPole=>$sWartosc)
  5.  {
  6. if($i!=0)
  7. {
  8. $this->aPola[$sPole]=$aWartosci[$i-1];
  9. }
  10.  $i++;
  11.  }
  12. ?>


$sPole to nazwa pola w bazie danych. I teraz chciałbym żeby jeśli w tablicy wyklucz znajduje się pole takie jak string w danym przebiegu pętli to zostaje wyrzucone i nie bardzo wiem jak to zrealizować.

Wymyśliłem:
  1. <?php
  2. $i=0;
  3.  foreach($this->aPola as $sPole=>$sWartosc)
  4.  {
  5. if($i!=0)
  6. {
  7. foreach($aWykucz as $sWyklucz)
  8. {
  9. $this->aPola[$sPole]=$aWartosci[$i-1];
  10. if($sPole==$sWyklucz)
  11. {
  12. $sPole=null;
  13.  
  14. }
  15. }
  16.  
  17. }
  18.  $i++;
  19.  }
  20. ?>


No ale coś mi nie wyszło. Dalej realizowane jest to tak że zbija te pary NazwaPola, wartość i tworzy z nich string UPDATE ...SET NazwaPola=wartosc... itd. No i nie wiem jak mam dokonać tego żeby nie było tych nazw pól które podam w tablicy wyklucz.

Mam nadzieję, że napisałem to w miarę zrozumiale.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




in_array" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
szczurek
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

Ostrzeżenie: (10%)
X----


Więc jednak jestem ślepy. A siedziałem i kopałem, tylko cholera z drugiej strony manuala chyba. Pominę już fakt swoich kombinacji kiedy miałem rozwiązanie pod nosem. Oczywiście funkcja właśnie działa tak jak to sobie wymarzyłem.
Dziękuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
DeyV
post
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Swoją drogą - napisanie takiej funkcji jest bardzo proste.
Nie do końca wiem, dlaczego miałeś z tym problem.

  1. <?php
  2. function myInArray( $sText, $aTab ){
  3. foreach( $aTab as $sValue ) {
  4. if( $sValue == $sText ) {
  5.  return true;
  6. }
  7. return false;
  8. }
  9. ?>
Go to the top of the page
+Quote Post
szczurek
post
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

Ostrzeżenie: (10%)
X----


Pewnie dlatego że się za to zabrałem za to od złej strony i coś za dużo grzebałem w już istniejącej funkcji zamiast napisać sobie coś czego będę mógł tam użyć.

Czasem łapie się na takiej rzeczy, że mi później wstyd (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Przenosze na Przedszkole
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:18