Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Explode z bazy danych
Matado
post 13.08.2009, 20:19:29
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 9.12.2008

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


Mam mały problem z wyciągnięciem części tekstu. Chcę pobrać id filmu z YouTube. Id filmu znajduje się po tym tekście '?v=' . Z poziomu pliku PHP, kiedy wyciągam za pomocą explode() , jest wszystko OK. Normalnie wyświetla wyciągniętą część.

link ma taką postać np.
Kod
http://www.youtube.com/watch?v=m8I7DVjb8TM


Ale kiedy chcę pobrać z bazy danych link do filmu, wszystko jest w porządku, tylko podczas wyświetlania tekstu zamiast id filmu otrzymuję "Array", czyli wyświetla tablicę zamiast otrzymanego tekstu.

Jak to rozwiązać?

  1. <?php
  2.  
  3. class Split
  4. {
  5. public $link;
  6.  
  7. public function cut()
  8. {
  9. $pdo= new PDO ('mysql:host=localhost;dbname=test','root','');
  10. $stmt= $pdo-> prepare ('SELECT link FROM videos WHERE id=:id');
  11. $stmt-> bindValue (':id', 1 , PDO::PARAM_INT);
  12. $stmt-> execute();
  13.  
  14. while ($row= $stmt-> fetch())
  15. {
  16. $this-> link= explode ('?v=', $row['link']);
  17. }
  18.  
  19. $stmt-> closeCursor();
  20. }
  21.  
  22. public function show()
  23. {
  24. return $this-> link;
  25. }
  26.  
  27. }
  28.  
  29. $link= new Split;
  30. $link-> cut();
  31. echo $link-> show();
  32.  
  33. ?>


Ten post edytował Matado 13.08.2009, 20:21:10
Go to the top of the page
+Quote Post
r4xz
post 13.08.2009, 20:27:57
Post #2





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


echo $link[1]


--------------------
Go to the top of the page
+Quote Post
Merko
post 13.08.2009, 20:30:12
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 10.10.2007
Skąd: Olsztyn

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


Chyba raczej 

$wynik = $link-> show();

echo $wynik[1];

tak mi się zdaje



--------------------
Chcesz mieć strone, sklep, portal, grę? Napisz do mnie może Tobie pomoge 
(cena do uzgodnienia :D)
TumS.pl

Go to the top of the page
+Quote Post
Matado
post 13.08.2009, 20:31:11
Post #4





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 9.12.2008

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


Faktycznie. Zapomniałem, że wynik w tablicy otrzymuję. Ok śmiga. Dzięki,
Go to the top of the page
+Quote Post
Fafu
post 13.08.2009, 20:31:14
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


Lepiej skorzystaj z wyrażenia regularnego stąd: http://forum.php.pl/index.php?showtopic=11...20&start=20
  1. #
  2. // szukanie id filmu
  3. if(preg_match('/watch?v=([a-zA-Z0-9_]+)/i', $str, $matches))
  4. {
  5. $idMovie=$matches[1];
  6. }


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
gcdreak
post 13.08.2009, 20:58:41
Post #6





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

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


Nieprawda!
Lepiej będzie jak skożystasz z explode()
@Fafu
Z manuala wyrażnie wynika, że preg_* są wolniejsze niż np: explode()
Go to the top of the page
+Quote Post
Fafu
post 13.08.2009, 21:35:41
Post #7





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

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


1. skorzystasz - razi w oczy
2. a co jak ktoś da link np
watch?v=JsigDKE14uI&feature=related
?
to wg explode wytnie razem z &feature=related a w wyrażeniu regularnym nie


--------------------
http://rafal.brzezinski.me - skrypty, tutoriale i inne.
Jeśli udało Ci się rozwiązać problem podziękuj osobom, które ci pomogły.
Go to the top of the page
+Quote Post
Merko
post 13.08.2009, 22:25:41
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 10.10.2007
Skąd: Olsztyn

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


to dajemy
  1. $test = @explode("&", $wynik[1]);
  2. if($test[1] == '')
  3. $id_link = $wynik[1];
  4. else
  5. $id_link = $test[0];


Ten post edytował Merko 13.08.2009, 22:26:19


--------------------
Chcesz mieć strone, sklep, portal, grę? Napisz do mnie może Tobie pomoge 
(cena do uzgodnienia :D)
TumS.pl

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: 14.08.2025 - 12:07