Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Usuniecie przecinka z konca ciagu w petli
viamarimar
post 18.07.2016, 16:51:21
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


Jak usunac przecinek z ostatniej lini w tej petli.
Chodzi o linie:
  1. echo $rm['method_name'].",";

Probuje tak ale to kasuje polowe wynikow petli
  1. while($rm = mysqli_fetch_assoc($result)) {
  2. //echo $rm['method_name'].",";
  3. $string = $rm['method_name'].",";
  4.  
  5. }
  6. $new_string = substr($string, 0, -1);
  7. echo $new_string;
Go to the top of the page
+Quote Post
trueblue
post 18.07.2016, 17:04:20
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Kasuje połowę, bo w pętli nadpisujesz wciąż zmienną, a nie doklejasz. To nie wina substr.

A jeśli nie chcesz używać substr, to może być rtrim, przy czym usunie wszystkie przecinki z końca, ale to chyba nie problem.


--------------------
Go to the top of the page
+Quote Post
viamarimar
post 18.07.2016, 21:38:24
Post #3





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


+= czy cos takiego polaczy ciag w tej petli? by potem usunac przecinek

//nie nie problem
Go to the top of the page
+Quote Post
trueblue
post 18.07.2016, 21:43:30
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Nie. W PHP do łączenia stringów służy kropka.


--------------------
Go to the top of the page
+Quote Post
JoShiMa
post 19.07.2016, 01:45:42
Post #5





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A wrzuć sobie te stringi w pętli do tablicy a na końcu zastosuj funkcję implode: http://php.net/manual/en/function.implode.php


--------------------
Go to the top of the page
+Quote Post
Lion
post 19.07.2016, 09:36:00
Post #6





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

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


Załadowanie do tablicy (ale bez przecinków), użycie implode z przecinkiem jako "glue" a następnie rtrim lub substr to dobry pomysł.


--------------------
Go to the top of the page
+Quote Post
viking
post 19.07.2016, 10:59:01
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Ewentualnie można zaimplementować http://php.net/manual/pl/cachingiterator.hasnext.php wink.gif


--------------------
Go to the top of the page
+Quote Post
viamarimar
post 22.07.2016, 14:14:44
Post #8





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

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


Wrzucilem tablice do pelti ale gdy probuje ja wyswietlic nie ma wartosci. print_r zwraca array() - czyli pusto
  1. $string = array();
  2. while($rm = mysqli_fetch_assoc($result)) {
  3. //echo $rm['method_name'].",";
  4.  
  5. for ($i=0, $b=count($string); $i<$b; $i++){
  6. $string[$i] = $rm['method_name'].",";
  7. }
  8.  
  9. }
  10. echo 'sss';
  11. print_r($string);
  12. for ($i=0, $b=count($string); $i<$b; $i++){
  13. echo $string[$i].'sssss';
  14. }


Jesli uzyje implode? to jak ma mi to pomoc w odjeciu ostatniego przecinka bo nadal nie bardzo rozumiem. Potne ciag na czesci i mam na podstawie ostatniego elementu tablicy...?

Co to jest glue? Chodzi o kropke?

Ten post edytował viamarimar 22.07.2016, 14:17:42
Go to the top of the page
+Quote Post
trueblue
post 22.07.2016, 14:21:22
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Tablica jest pusta, bo wrzucasz dane w niepotrzebnej pętli, która nigdy się nie wykona ($i=0,$b=0).
Ta pętla jest niepotrzebna. Również nie jest potrzebne doklejanie przecinka do elementów wrzucanych do tablicy.

Albo: http://php.net/manual/en/function.array-push.php albo druga ramka w tym dokumencie.


--------------------
Go to the top of the page
+Quote Post
Lion
post 22.07.2016, 14:25:01
Post #10





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

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


Pierwsza pętla for jest źle napisana. W zmiennej $i masz 0 i w zmiennej $b też masz 0, czyli od razu kończy się wykonywanie tej pętli. Ogólnie pętla ta nie jest Ci potrzebna.

Jeśli chodzi o glue, to jest to zwyczajowa nazwa dla pierwszego argumentu funkcji implode - zobacz w manualu PHP jak ona działa.


--------------------
Go to the top of the page
+Quote Post
JoShiMa
post 22.07.2016, 15:17:11
Post #11





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Do tablicy wrzucasz bez przecinka a potem implodujesz z użyciem przecinka (parametr glue) co powoduje, że nie pojawia się on na końcu a jedynie oddziela elementy które wrzuciłeś do tablicy.

Ten post edytował JoShiMa 22.07.2016, 15:17:57


--------------------
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: 16.04.2024 - 13:29