Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Numerowanie wierszy
Forum PHP.pl > Forum > Przedszkole
Gość
Mam pytanie.

Mam skrypt, w którym można dodawać przepisy. Generalnie, znajduje się on w polu text. Wyciągam je zapytaniem, zamieniam nową linię na <br />, ale mam problem.

Czy jest możliwość dodania na samym początku numeru i żeby ten numer automatycznie rósł?

Na początku każdej linii mam '#', ale nie wiem jak to zamienić na numery sad.gif
wookieb
rozbij ciag na tablice (funkcja explode). Dla każego elementu tablicy (foreach albo array_map)wykonaj zamiane znaku na liczbe (str_replace). Potem polacz tablice do ciagu za pomoca (implode).
O gotowca nawet nie proś.
Gość
A nie proszę smile.gif

Właśnie chciałem jakąś sugestię i ją otrzymałem:)

Biorę się za kodowanie, w razie problemów, będę pytał jeszcze.

Dzięki!
Gość
Ok.

Coś pokombinowałem, ale pomysłu już nie mam. Sugestie mile widziane:)

  1. <?php
  2. $przepis= nl2br($r['przepis']);
  3.    $pieces = explode("<br>", $przepis);
  4.    $tre = str_replace('#', $i++, $pieces);
  5.    $br_separated = implode("<br>", $tre);
  6.    echo $br_separated;
  7. ?>


No i wszędzie powtarza tak samo. Generalnie tak jak zrobiłbym to tylko za pomocą str_replace.

Any ideas?
wookieb
Nie wykonałeś dla kazdego elementu tablicy
Kod
for($i=0; $i<count($pieces); $i++)
{
$tre = str_replace('#', $i+1, $pieces[$i]);
}

Cytat
A nie proszę smile.gif

Właśnie chciałem jakąś sugestię i ją otrzymałem:)

Biorę się za kodowanie, w razie problemów, będę pytał jeszcze.

Dzięki!

Dla takich chwil się pomaga ludziom tongue.gif
Gość
Deklarowałem przed pętlą, na samym początku pętli i dalej zwraca wszędzie

  1. <?php
  2. 0
  3. 0
  4. 0
  5. 0
  6. 0
  7. ?>


To samo, jak już powiedziałem, udaje się zrobić str_replace, ale tez nie numeruje.


// Manual jednak rządzi:) Właśnie go przekopuję, ale nic znaleśc nie mogę blink.gif
Gość
Edytowałeś jak już odpowiedziałem laugh.gif

Całość wygląda tak:
  1. <?php
  2. $przepis= nl2br($r['tracklist']);
  3.   $pieces = explode("<br>", $przepis);
  4.   for($i=0; $i<count($pieces); $i++)
  5.    {
  6.    $tre = str_replace('#', $i+1, $pieces[$i]);
  7.    }
  8.   $br_separated = implode("<br>", $tre);
  9.   echo $br_separated;
  10. ?>


A błąd zwraca taki:
  1. <?php
  2. [phpBB Debug] PHP Noticein file /home/pedro/www/modules/bands.php on line 74implode() [function.implode: Invalid arguments passed
  3. ?>


Linia 74 to:
  1. <?php
  2. $br_separated = implode("<br>", $tre);
  3. ?>


Wspomóż sugestiąsmile.gif
wookieb
Kod
<?php
   $pieces = explode("\n", $r['tracklist']);
   for($i=0; $i<count($pieces); $i++)
    {
    $pieces[$i]= str_replace('#', $i+1, $pieces[$i]);
    }
   $br_separated = implode("<br/>", $pieces);
   echo $br_separated;
?>
Gość
A można jeszcze jakoś dodać do tego taką funkcję, żeby po jakimś napisie zerowało numerowanie i numerowało od początku?
Gość
  1. <?php
  2. while($r = mysql_fetch_assoc($query)) {
  3.     $tracklist = $r['tracklist'];
  4.     $track_array = explode("\n", $tracklist);
  5.     $track_num = 1;
  6.     foreach ($track_array as $track_name) {
  7.           $track_name = trim($track_name);
  8.           if ($track_name > "") {
  9.                if($track_num < 10){
  10.                $tl = str_replace("#", '<span style="color:#666">0'.$track_num.'.</span>', $track_name);
  11.                } else {
  12.                $tl = str_replace("#", '<span style="color:#666">'.$track_num.'.</span>', $track_name);
  13.                }
  14.                echo ''.AddBB($tl).'<br/>';
  15.               $track_num++;
  16.           }
  17.     }
  18. }
  19. ?>


Mam taki kod. Testuję na stronie testowej sobie. Ale mam problemy:
Numeruje mi wszystko jak leci, a nie tylko "#". Poza tym, czy da się zrobić tak, aby po jakimś teście numerowanie było resetowane?
Gość
Nikt nie jest w stanie pomóc?sad.gif
Gość
Mam jakiś pomysł. Po przeanalizowaniu struktury, tego wszystkiego, dochodzę do wniosku, że to jest coś podobnego do parsera BBCode.

Ale czy ktoś wie jak zamienić # na numery?
Gość
Bump
Gość
Ktokolwiek?
wookieb
Mozna. Dopisz sobie taki warunek i resetowanie numerowania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.