Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] bbcode i SQL
free
post 10.08.2006, 20:08:50
Post #1





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Mam prosty skrypt:

  1. <?
  2.  
  3. $emoty=array(
  4. ":) " =>"<img src=usmiech.gif>",
  5. ":-)" =>"<img src=usmiech.gif>"
  6. );
  7.  
  8. ?>
  9.  
  10. // I do użycia :
  11.  
  12. <?
  13. echo strtr($jakistamtekst,$emoty);
  14. ?>

Jest to o tyle prymitywny skrypcik, że ma na sztywno zdefiniowane w kodzie zaminenne emoty.
Chce go przerobic. Strukture danych bazy i wszystko z tym związane zrobię sam. Mam tylko problem jak zmienic go by dzialal w oparcio o dane z bazy MySQL, a nie z pliku *.php.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
hwao
post 10.08.2006, 20:13:08
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Pobierasz dane z bazy danych i je przepuszczasz przez ta funkcje
Go to the top of the page
+Quote Post
free
post 10.08.2006, 20:15:50
Post #3





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


tyle to i ja wiem ze
- musze pobrac dane z bazy /to umiem/
- przepuscic przez funkcje /i tego własnie nie wiem jak zrobic/
Go to the top of the page
+Quote Post
lukir
post 10.08.2006, 20:40:59
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


Robisz sobie tabelę bazy danych - np.: emots...

Kod
emots:

+--------------+----------------------------------+

|     emots    |              images              |

+--------------+----------------------------------+

|  :)          |       <img src=usmiech.gif>      |

+--------------+----------------------------------+

|  :-)         |       <img src=usmiech.gif>      |

+--------------+----------------------------------+

|  :(          |       <img src=smutny.gif>       |

+--------------+----------------------------------+

|  :-(         |       <img src=smutny.gif>       |

+--------------+----------------------------------+

...i dajesz taki kod:
  1. <?
  2. //łączenie z bazą MySQL
  3. $db = mysql_connect(MYQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(mysql_error());
  4. mysql_select_db("emots");
  5.  
  6. //zliczenie rekordów
  7. $search = mysql_query("SELECT * FROM `emots`", $db);
  8. $counter = mysql_num_rows($search);
  9.  
  10. //zmienne
  11. $emots = array();
  12. $images = array();
  13.  
  14. //pobieranie danych
  15. for($i=0; $i<$counter; $i++) {
  16. $search = mysql_query("SELECT * FROM `emots` LIMIT ".$i.",1;", $db);
  17. $result = mysql_fetch_array($search);
  18. $emots[$i] = $result[0];
  19. $images[$i] = $result[1];
  20. }
  21.  
  22. //i na koniec:
  23. echo str_replace($emots, $images, $jakistamtekst);
  24. ?>


Ten post edytował lukir 10.08.2006, 20:42:18


--------------------
"Tylko myśl dojrzała i jasna daje się wypowiedzieć w słowach prostych" - prof. Witold Doroszewski
Warsztat: os: Windows XP, serwer: Apache 2.0.55, php: 5.1.4, baza danych: MySQL 4.1.7.
Go to the top of the page
+Quote Post
free
post 10.08.2006, 20:59:52
Post #5





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Dzieki za rzeczową odpowiedź guitar.gif
Zrobie z tego kodu funkcje o nazwie bbcode.
Później jak będę chciał ją wykorzystać to mam użyć :
  1. <?php
  2. funcion bbcode(co tu wstawic?);
  3. ?>

Co wstawic w nawiasie ?

Nie rozumiem dzialania kodu z lini 11, 12
$emots = array();
$images = array();
oraz dlaczego w linii 18 i 19
$emots[$i] = $result[0];
$images[$i] = $result[1];
deklaruje sie $result[0]; a później $result[1];
Go to the top of the page
+Quote Post
NetJaro
post 11.08.2006, 09:05:40
Post #6





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


  1. <?php
  2. $emots = array();
  3. $images = array();
  4. ?>

A zobacz co robi funkcja array" title="Zobacz w manualu php" target="_manual - tworzy pustą tablice. smile.gif


  1. <?php
  2. $emots[$i] = $result[0];
  3. $images[$i] = $result[1];
  4. ?>

Tutaj przypisujesz do danego klucza tablicy $emots i $images dane z bazy ($result[0] i $result[1]).
Go to the top of the page
+Quote Post
lukir
post 12.08.2006, 10:34:42
Post #7





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 6.08.2004
Skąd: Warszawa

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


Cytat
<?php
funcion bbcode(co tu wstawic?);
?>
Co wstawic w nawiasie ?

Wstaw coś takiego:
  1. <?php
  2. //definicja funkcji:
  3. //param: $txt to parametr funkcji (string) z emotikonami do wymiany :)
  4.  
  5. function bbcode($txt = 0) {
  6. //sprawdzenie czy zdefiniowano parametr funkcji:
  7. if($txt==0)
  8. return false;
  9.  
  10. //łączenie z bazą MySQL
  11. $db = mysql_connect(MYQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or die(mysql_error());
  12. mysql_select_db("emots");
  13.  
  14. //zliczenie rekordów
  15. $search = mysql_query("SELECT * FROM `emots`", $db);
  16. $counter = mysql_num_rows($search);
  17.  
  18. //zmienne
  19. $emots = array();
  20. $images = array();
  21.  
  22. //pobieranie danych
  23. for($i=0; $i<$counter; $i++) {
  24. $search = mysql_query("SELECT * FROM `emots` LIMIT ".$i.",1;", $db); 
  25. $result = mysql_fetch_array($search);
  26. $emots[$i] = $result[0];
  27. $images[$i] = $result[1];
  28. }
  29.  
  30. //i na koniec:
  31. return str_replace($emots, $images, $txt);
  32. }
  33. ?>

Potem żeby użyć powyższej funkcji wpisujesz:
  1. <?php
  2. //$text może być też pobrane z formularza, np.: $text = $_POST['tekst'];
  3. $text = "bla bla bla :) ble ble ble :(";
  4.  
  5. //poniższy kod powinied dać taki HTML: 
  6. //"bla bla bla <img src=usmiech.gif> ble ble ble <img src=smutny.gif>"
  7.  
  8. echo bbcode($text);
  9. ?>


Ten post edytował lukir 12.08.2006, 10:38:20


--------------------
"Tylko myśl dojrzała i jasna daje się wypowiedzieć w słowach prostych" - prof. Witold Doroszewski
Warsztat: os: Windows XP, serwer: Apache 2.0.55, php: 5.1.4, baza danych: MySQL 4.1.7.
Go to the top of the page
+Quote Post
free
post 10.10.2006, 09:33:46
Post #8





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Mam mały problem. Otóż zmienna $txt jest pobierana z innej tabeli
  1. "SELECT * FROM komentarz where news_id = '".$_GET['page']."' ORDER BY id DESC";
  2. ...
  3. $txt=$kom['txt'];

Jak to połączyć ze sobą ?

Poradziłem sobie sam.
Problem tkwił w

  1. <?php
  2. function bbcode($txt = 0) {
  3. //sprawdzenie czy zdefiniowano parametr funkcji:
  4. if($txt==0)
  5. return false;
  6. ?>

powinno byc samo:
  1. <?php
  2. function bbcode($txt) ...
  3. ?>


Ten post edytował free 10.10.2006, 11:07:21
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: 25.07.2025 - 10:06