Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak usunąć z ciągu ostatni przecinek?
miedzna
post
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


Dość często mam taki problem. Mam funkcję rekurencyjną, która zwraca mi jakiś tam ciąg.

Oto funkcja:
  1. function MapaGalezi($ParentID) {
  2.  
  3.  
  4. $result=mysql_query("SELECT id, pid, name FROM table WHERE pid = ".$ParentID." ORDER BY name, id");
  5.  
  6.  
  7. while ( $row = mysql_fetch_array($result) ) {
  8.  
  9. echo "['" . $row["id"] . "', '".$row["pid"]."'],<br />";
  10.  
  11. MapaGalezi($row["id"]);
  12.  
  13. }
  14. }
  15. MapaGalezi(1);


Zwracany ciąg:
['10902', '1'],
['10903', '10902'],
['10905', '10903'],
['10904', '10903'],
['10906', '10902'],
['4837', '1'],
['4886', '4837'],
['4887', '4837'],
['4885', '4837'],
['7770', '1'],

i problem jest taki, że chcę z ostatniej linijki ['7770', '1'], usunąc przecinek. Tylko nie wiem jak.

Ten post edytował miedzna 15.09.2009, 09:49:01
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




substr
http://pl2.php.net/substr

Ten post edytował phpion 15.09.2009, 09:48:41
Go to the top of the page
+Quote Post
miedzna
post
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 1
Dołączył: 10.03.2004
Skąd: Warszawa

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


ZMieniłem pętlę na :

  1. while ( $row = mysql_fetch_array($result) ) {
  2.  
  3. $string = substr("['" . $row["id"] . "', '".$row["pid"]."'],", 0, -1);
  4.  
  5. echo $string;
  6.  
  7. MapaGalezi($row["id"]);
  8.  
  9. }


i to usunęło wszystkie przecinki.
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Skoro chcesz usunąć tylko ostatni przecinek to usuń go po wyjściu z pętli?
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat

substr_replace


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


rtrim( $str, ',' );

usuwa WSZYSTKIE przecinki znalezione na koncu stringa:

Kod
ABCDEF,,,,,,,,,,,,,, => ABCDEF


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Fantazyn
post
Post #7





Grupa: Zarejestrowani
Postów: 135
Pomógł: 38
Dołączył: 24.02.2007
Skąd: Warszawa

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


Cytat(miedzna @ 15.09.2009, 10:59:42 ) *
ZMieniłem pętlę na :

  1. while ( $row = mysql_fetch_array($result) ) {
  2.  
  3. $string .= substr("['" . $row["id"] . "', '".$row["pid"]."'],", 0, -1);
  4.  
  5. echo $string;
  6.  
  7. MapaGalezi($row["id"]);
  8.  
  9. }

Nie wyświetlaj wszystkiego jak leci, tylko połącz wszystkie wyniki do jednego stringa i dopiero odetnij przecinek.
  1. $string = '';
  2. while ( $row = mysql_fetch_array($result) ) {
  3.  
  4. $string. = "['" . $row["id"] . "', '".$row["pid"]."'],<br />";
  5.  
  6. MapaGalezi($row["id"]);
  7.  
  8. }
  9. $string = substr($string, 0, -1);


Lub skorzystaj z pętli for (oblicz, który element jest ostatni:
  1. $row[count[$row]-1]
i dopiero jemu odetnij przecinek.

Ps. Nie wiem co robi funkcja MapaGalezi, ale ogolnie nie powinnaś od razu wypluwać wszystkiego co przetworzy Ci php.

Edit: Poprawione , dziękuję za uwagę : ).

Ten post edytował Fantazyn 15.09.2009, 12:36:56


--------------------
Go to the top of the page
+Quote Post
vokiel
post
Post #8





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


@Fantazyn co to było?
Cytat
  1. $string = '';
  2. while ( $row = mysql_fetch_array($result) ) {
  3.  
  4. $string = "['" . $row["id"] . "', '".$row["pid"]."'],<br />";
  5.  
  6. MapaGalezi($row["id"]);
  7.  
  8. }
  9. $string = substr("['" . $row["id"] . "', '".$row["pid"]."'],", 0, -1);


  1.  
  2. $string = '';
  3. while ( $row = mysql_fetch_array($result) ) {
  4. $string .= "['" . $row["id"] . "', '".$row["pid"]."'],<br />";
  5. MapaGalezi($row["id"]); // cokolwiek to robi
  6. }
  7. $string = rtrim( $string, ',' );


--------------------
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 Aktualny czas: 22.08.2025 - 00:46