Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> parsowanie adresu
GrayHat
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


otoz link generuje sie po przeparsowaniu pola title z bazy danych np: title = Witaj świecie to link wyglada: strona.pl/witaj_swiecie
i teraz pytanie: jak to zrobic w druga strone czyli: SELECT *</u></u> FROM tabela WHERE title = 'witaj_swiecie' zwroci 0 poniewaz witaj_swiecie != Witaj świecie.
na php.pl cos takiego jest np:
php.pl/artykuly/aplikacje_internetowe/architektura/session_handler_czesc_i

:/


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
atomik
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2005
Skąd: Poznań

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


Spróbuj zamiast
Cytat
SELECT * FROM tabela WHERE title = 'witaj_swiecie'

wpisać
Kod
SELECT * FROM tabela WHERE title LIKE 'witaj swiecie'

Powinno pomóc.


--------------------
pozdrowienia, Tomek
-------------------------
Ci, którzy umieją - robią, ci którzy nie umieją - uczą.
Go to the top of the page
+Quote Post
GrayHat
post
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


nie rozumiesz...
chodzi o pobranie wyniku z bazy ktorego title jest sparsowany aby mogl byc wyswietlony jako link...


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
kszychu
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


A nie mozesz w bazie trzymac jakiegos pola, które jednoznacznie by to definiowało? np. pole id, które może być typu varchar i zawierać wartość 'witaj_swiecie'?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
ebe
post
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 1
Dołączył: 23.01.2004

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


Cytat
where title = 'witaj_swiecie'


funkcjami mysql'owymi (manual), zamieniasz wszystko na małe litery, usuwasz polskie ogonki, zamieniasz spacje na _ i wywalasz wysztkie inne znaki poza literami i cyframi

Cytat
where inna(pierwsza_funkcja(' ','_',title)) = 'witaj_swiecie'


nie pamiętam tych funkcji ale to nie problem sprawdzić, a znaleźć tam można odpowiedniki stringowych funkcji z php

Ten post edytował ebe 9.09.2005, 13:41:44


--------------------
Słyszałem, że macie tutaj jakieś takie php... fajne to, dobre to jest?
Go to the top of the page
+Quote Post
GrayHat
post
Post #6





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


Cytat(kszychu @ 2005-09-09 14:41:14)
A nie mozesz w bazie trzymac jakiegos pola, które jednoznacznie by to definiowało? np. pole id, które może być typu varchar i zawierać wartość 'witaj_swiecie'?

jest pole ID ale musze to zrobic zeby wygladalo w stylu nazwa.pl/tytul.htm a nie nazwa.pl/id/tytul.html
a co do dodania kolejnego pola np parsed_title to odpada bo trzeba by przekonwertowac ok 90 000 wynikow :/

jak to jest zrobione w php.pl?? snitch.gif


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #7





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

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


Cytat
a co do dodania kolejnego pola np parsed_title to odpada bo trzeba by przekonwertowac ok 90 000 wynikow :/

Wlasnie o tym mialem napisac. Ale to jest TYLKO smile.gif 90k rekordow -- raz to zrobisz i bedzie po klopocie.


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





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(GrayHat @ 2005-09-09 13:48:13)
a co do dodania kolejnego pola np parsed_title to odpada bo trzeba by przekonwertowac ok 90 000 wynikow :/

Jeśli trzeba by to robić ręcznie to faktycznie sporo, ale jeśli zapuścić autoamt to chwil kilka cool.gif


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
GrayHat
post
Post #9





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


kszychu pomozesz przy automacie??


--------------------
*Note: No animals were killed durning the construction of this post.
Go to the top of the page
+Quote Post
kszychu
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Nie chce mi się pisać gotowca, bo nie pamiętam już stabdardowych funkcji obsługi mysqla biggrin.gif
W skrócie:
1. Dodaj pola parsed_title i parsed_artist najlepiej varchar(255)
2. Wykonaj zapytanie "SELECT id, artist, title FROM twoja_tabela", zwróci ci to wszystkie rekordy
<pętla while>
3. Obrób w pętli wartości artist i title:
  1. <?php
  2.  
  3. $parsed_artist = parsuj($artist);
  4. $parsed_title = parsuj($title);
  5.  
  6. $sql = "UPDATE twoja_tabela SET parsed_artist = '{$parsed_artist}', parsed_title = '{$parsed_title}' WHERE id = '{$id}'";
  7. // i wykonaj to zapytanie na bazie
  8.  
  9. ?>


Teraz funkcja parsująca:
  1. <?php
  2.  
  3. function parsuj($tekst) {
  4. $iso88592=array (32,161,198,202,163,209,211,166,172,175,177,230,234,179,241,243,182,188,191);
  5. $pl =array (95,65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  6.  
  7. for($i = 0; $i < 19; $i++) {
  8. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  9. }
  10.  
  11. return $tekst;
  12. }
  13. ?>


Powinno działać.

P.S. Coś mamy problemy z gg :-/


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
GrayHat
post
Post #11





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

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


  1. <?
  2. function parsuj($tekst) {
  3. $iso88592=array (32,161,198,202,163,209,211,166,172,175,177,230,234,179,241,243,182,188,191);
  4. $pl =array (95,65, 67, 69, 76, 78, 79, 83, 90, 90, 97, 99, 101,108,110,111,115,122,122);
  5.  
  6. for($i = 0; $i < 19; $i++) {
  7. $tekst=str_replace(Chr($iso88592[$i]),Chr($pl[$i]),$tekst);
  8. }
  9.  
  10. return $tekst;
  11. }
  12.  
  13. mysql_connect("localhost","root","x");
  14. mysql_select_db("teksty");
  15.  
  16. $sql = "SELECT id, artist, title FROM piosenki ORDER BY id DESC LIMIT 10";
  17. $res = mysql_query($sql);
  18. while ($row = mysql_fetch_array($res)){
  19. echo parsuj($row['title'])."<br>";
  20. }
  21. ?>


takie cus juz zrobilem tylko ze to nie dziala na utf-8 ;/

edit:

  1. <?
  2. $utf8=array ("Ś","ś","Ć","ć","","ę","Ą","ą","Ż","ż","Ź","ź","Ń","ń","Ó","ó","Ł","ł","`","'",'"',"-"," ");
  3. $pl =array ("s","s","c","c","e","e","a","a","z","z","z","z","n","n","o","o","l","l","","","","","_");
  4. ?>


tak to zrobilem :|

i nadal nie dziala :/

Ten post edytował GrayHat 9.09.2005, 15:12:08


--------------------
*Note: No animals were killed durning the construction of this post.
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: 19.08.2025 - 23:15