Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]explode rozbicie i porównanie, czy explode to dobry wybór?
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie mamy kod:
Rozbijam zmienną $expl wyciąganą z bazy, gdzie czasem może być samo X, czasem X, Y a czasami X , Y, Z.
Zastanawiam się, czy dobrym sposobem jest zastosowanie funkcji explode i rzucanie tego do tablicy , ponieważ X , Y, Z może mieć zarówno expl[0] jak i expl[1] jak i expl[2]
  1.  
  2. $expl = explode(",", $row['name']); //będzie zawierać X, Y, Z
  3. $exy = $expl[0];
  4. $exy = $expl[1];
  5. $exy = $expl[2];
  6.  


A chciałbym osiągnąć cel if $zmienna = X rób coś tam , if $zmienna Y rób coś innego, if $zmienna Z rób zupełnie coś innego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


To zamiast rozbijać zastosuj http://php.net/manual/en/function.strpos.php
Go to the top of the page
+Quote Post
bostaf
post
Post #3





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Cytat(trueblue @ 20.06.2017, 21:19:20 ) *
To zamiast rozbijać zastosuj http://php.net/manual/en/function.strpos.php

Heh, właśnie próbuję zrobić do tego onelinera wykorzystując strpos (IMG:style_emoticons/default/smile.gif)

W międzyczasie coś takiego mi przyszło do głowy:
  1. extract(array_flip(explode(',', $row['name'])));
  2. $X = isset($X);
  3. $Y = isset($Y);
  4. $Z = isset($Z);
  5. var_dump($X, $Y, $Z);


Ale tak czy inaczej, po pierwsze to bym się zastanowił nad strukturą danych w bazie. To co masz w tej chwili jest sprzeczne z zasadami normalizacji, a konkretnie z pierwszą postacią normalną 1NF - jedno pole w bazie powinno zawierać atomową, niepodzielną informację.
Go to the top of the page
+Quote Post

Posty w temacie
- casperii   [PHP]explode rozbicie i porównanie   20.06.2017, 19:30:25
- - trueblue   To chyba pytanie do Ciebie. Czy sprawdzasz tylko p...   20.06.2017, 19:33:11
- - casperii   sprawdzam całość   20.06.2017, 19:35:15
- - trueblue   No, to w czym problem. Rozbiłeś, posortuj alfabety...   20.06.2017, 19:37:01
- - bostaf   Cytat(casperii @ 20.06.2017, 20:30:25...   20.06.2017, 19:47:32
- - casperii   No tak tylko , że czasami Z będzie mieć $expl...   20.06.2017, 19:49:02
- - trueblue   A będzie sytuacja, że jest ZY, YZX, YX, itp., czyl...   20.06.2017, 19:59:33
- - casperii   X , Y , Z = to przykładowe dane (to będą skróty tr...   20.06.2017, 20:06:47
- - trueblue   To zamiast rozbijać zastosuj http://php.net/manual...   20.06.2017, 20:19:20
|- - bostaf   Cytat(trueblue @ 20.06.2017, 21:19:20...   20.06.2017, 20:47:08
- - casperii   @bostaf to pole jest wynikiem zastosowania GROUP_C...   20.06.2017, 20:51:31
|- - bostaf   Cytat(casperii @ 20.06.2017, 21:51:31...   20.06.2017, 20:58:26
- - casperii   A co jeśli chciałbym rozbić od 1 - 3 losowo wybran...   28.06.2017, 21:12:41
- - Pyton_000   No i co?   29.06.2017, 08:31:53
- - casperii   No dobra a jeśli miał by coś takiego: [PHP] pobie...   7.07.2017, 20:40:13
- - trueblue   A nie wystarczy Ci GROUP_CONCAT tylko dla adresów?   7.07.2017, 20:51:33
- - casperii   Nie wystarczy, bo dla poszczególnego konta - jest ...   7.07.2017, 20:54:13
- - trueblue   A co to zmienia? Grupujesz po kontach, a GROUP_CON...   7.07.2017, 21:04:11
- - casperii   Hmm czyli twoim zdaniem powinno być: [PHP] pobierz...   7.07.2017, 21:13:45


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: 8.10.2025 - 19:31