Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jak podzielić dane rozdzielone przecinkiem?
kleszczoscisk
post
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Witam

Szukam szukam i naprawdę nie mogę znaleźć...

Mam w bazie MySQL tabelę z danymi, w komórce z atrybutami danego przedmiotu są dane rozdzielone przecinkiem (przykładowo, może być średnik albo cokolwiek). Ilość wyrazów rozdzielonych przecinkiem jest zmienna. Co zrobić żeby dane z tej komórki rozdzielić po tych przecinkach i wyświetlić w php ?
Przykład zawartości tabeli:
Kod
id|nazwa|atrybuty
   1|portret|olej,płótno
   2|autoportret|akryl,kredka,papier
   3|abstrakcja|farba,papier,kredki,ołówek,


Próbuję bezskutecznie żeby wyświetliło mi:
id: 1 , portret, technika: <a href=costam.php>olej</a> , <a href=costam.php>płótno</a>
id: 2 , autoportret, technika: <a href=costam.php>akryl</a> , <a href=costam.php>kredka</a>, <a href=costam.php>papier</a>
itd...

Wiem o istnieniu explode, count, o tablicach ale niestety nie umiem jeszcze tego wykorzystać.
Bardzo proszę o pomoc, jakiś przykład, odsyłacz... Siedzę już od 2 dni i nie mogę nic zdziałać...

Ant
Go to the top of the page
+Quote Post
1010
post
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


explode()
  1. <?php
  2. $dane = explode("," $dane);
  3.  
  4. print $dane[0];
  5. print $dane[1];
  6. print $dane[2];
  7. //... itd
  8. ?>
Go to the top of the page
+Quote Post
kleszczoscisk
post
Post #3





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Dzięki wielkie, próbowałem tak i jest OK...
Kod
   $tekst = $w[keyword];
   $wyrazy = explode(" ", $tekst);
      
       echo "<P CLASS=\"obrazekopis\"><SMALL>szukaj w katalogu:
       <A HREF=\"katalog.php?fraza=$wyrazy[0]&kolumna=keyword\">$wyrazy[0]</A>
       <A HREF=\"katalog.php?fraza=$wyrazy[1]&kolumna=keyword\">$wyrazy[1]</A>
       <A HREF=\"katalog.php?fraza=$wyrazy[2]&kolumna=keyword\">$wyrazy[2]</A>
       <A HREF=\"katalog.php?fraza=$wyrazy[3]&kolumna=keyword\">$wyrazy[3]</A>
       <A HREF=\"katalog.php?fraza=$wyrazy[4]&kolumna=keyword\">$wyrazy[4]</A>
       <A HREF=\"katalog.php?fraza=$wyrazy[5]&kolumna=keyword\">$wyrazy[5]</A>
       </SMALL></P>";

... ale co zrobić kiedy w tym przypadku danych rozdzielonych spacją jest np 10 ? Jak to policzyć, żeby wypisywało tyle linków ile trzeba (tj. ile jest wyrazów) ?
count() ?
nie wiem jak...
Go to the top of the page
+Quote Post
webdice
post
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Nie wiem czy cię dobrze zrozumiałem.

  1. <?php
  2. print count ($wyrazy);
  3. ?>
Go to the top of the page
+Quote Post
1010
post
Post #5





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


zliczasz ile jest wyrazów funkcją count i wyświetlasz w pętli
  1. <?php
  2. $tekst = $w[keyword];
  3.  $wyrazy = explode(" ", $tekst);
  4.  
  5.  $ile_wyrazow = count($wyrazy);
  6.  
  7.  echo "<P CLASS=\"obrazekopis\"><SMALL>szukaj w katalogu:";
  8.  
  9. for($i=0; $i<$ile_wyrazow; $i++)
  10.  {
  11.  echo "<A HREF=\"katalog.php?fraza=$wyrazy[".$i."]&kolumna=keyword\">$wyrazy[".$i."]</A>";
  12.  }
  13.  
  14.  echo "</SMALL></P>";
  15. ?>
Go to the top of the page
+Quote Post
Moli
post
Post #6





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

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


  1. <?php
  2. $wyrazy = explode(" ", $tekst);
  3.  
  4. foreach ( $wyrazy as $row ) 
  5. {
  6. // kod html
  7. }
  8. ?>
Go to the top of the page
+Quote Post
1010
post
Post #7





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


można i tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kleszczoscisk
post
Post #8





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Wielkie dzięki MISTRZU

Tego mi brakowało:
Kod
<span style="color: rgb(0, 119, 0);">for(</span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">=</span><span style="color: rgb(0, 0, 187);">0</span><span style="color: rgb(0, 119, 0);">; </span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);"><</span><span style="color: rgb(0, 0, 187);">$ile_wyrazow</span><span style="color: rgb(0, 119, 0);">; </span><span style="color: rgb(0, 0, 187);">$i</span><span style="color: rgb(0, 119, 0);">++)</span>


Idę się uczyć :-) :-)

Pozdrawiam, wszystkiego dobrego w Nowym Roku!

Cytat(Moli @ 4.01.2008, 16:22:14 ) *
foreach ( $wyrazy as $row )


To też działa
Dziękuję bardzo !
Pozdrawiam, wszystkiego dobrego w Nowym Roku!

Cytat(webdicepl @ 4.01.2008, 16:16:23 ) *
Nie wiem czy cię dobrze zrozumiałem.

  1. <?php
  2. print count ($wyrazy);
  3. ?>


Do tego, że trzeba policzyć doszedłem, nie wiedziałem co dalej. Uczę się :-), dzięki.

Ten post edytował kleszczoscisk 4.01.2008, 16:43:39
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: 3.10.2025 - 07:03