Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Pobieranie częśći ciągu, Reg exp
majestiq
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


W jaki sposób pobrać liczbę na końcu tego wyrażenia?

/asc24/index.php?act=profil&id=113

eregi (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://php.net/preg_match
A ja ci podam tylko wyrażenie
/id=[0-9]*/si

Ten post edytował wookieb 22.06.2009, 09:32:44
Go to the top of the page
+Quote Post
piotrooo89
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




czy ta liczba zawsze jest na końcu i czy zawsze odpowiada id bo może da się to prościej zrobić.
Go to the top of the page
+Quote Post
majestiq
post
Post #4





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Tak, zawsze jest na końcu i zawsze to id (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




jeśli link jest zawsze w takiej postaci możesz użyć explode" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
majestiq
post
Post #6





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


NO w sumie moze i explode jest lepsze ale dokanczajac:


  1. <?php
  2. $subject = $_SERVER['REQUEST_URI'];
  3.  
  4. $pattern = '/id=[0-9]*/si';
  5. preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
  6. echo $matches[0][0];
  7. ?>


i wyświetla mi id=113

Jak najprościej usunąć 'id=' i wyciągnąć samą liczbę ?
Go to the top of the page
+Quote Post
Wicepsik
post
Post #7





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Albo str_replace" title="Zobacz w manualu PHP" target="_manual (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2. $link = '/asc24/index.php?act=profil&id=113';
  3. echo str_replace('/asc24/index.php?act=profil&id=', '', $link);
  4. ?>




@edit up

  1. <?php
  2. preg_match('/id=([0-9]+)/', $subject, $matches);
  3. echo $matches[1];
  4. ?>


Ten post edytował Wicepsik 22.06.2009, 09:45:58
Go to the top of the page
+Quote Post
piotrooo89
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




poczytaj o grupowaniu w regexp'ach. tip chodzi o nawiasy.
Go to the top of the page
+Quote Post
majestiq
post
Post #9





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


  1. <?php
  2. $subject = $_SERVER['REQUEST_URI'];
  3.  
  4. preg_match('/id=([0-9]+)/', $subject, $matches);
  5. echo $matches[1];
  6. ?>



Super, teraz w $matches[1] mam id aktualnie oglądan
ego profilu, teraz chciałbym sprawdzić co ten profil [user] ma zapisane w bazie ->
w tabeli USERS w kolumnie o nazwie 'bg_name' i wywołać coś takiego:


  1. <?php
  2. echo '<body style="background: url(images/'. $bg_name. ') repeat-x scroll center top;">';
  3. ?>



Jak to najszybciej zrealizować ?

Ten post edytował majestiq 22.06.2009, 09:58:19
Go to the top of the page
+Quote Post
Wicepsik
post
Post #10





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <?php
  2. $bg_name = mysql_query('SELECT `bg_name` FROM `users` WHERE id="'.$matches[1].'"');
  3. echo '<body style="background: url(images/'. $bg_name. ') repeat-x scroll center top;">';
  4. ?>


Chyba coś takiego, lecz nie jestem pewny.

Ten post edytował Wicepsik 22.06.2009, 10:02:46
Go to the top of the page
+Quote Post
kefirek
post
Post #11





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. <?php
  2. $string  = '/asc24/index.php?act=profil&id=11';
  3. echo substr(strstr($string, 'id'), 3);
  4. ?>
Go to the top of the page
+Quote Post
Maxik
post
Post #12





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


LOL, Wicepsik. O mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual nie słyszałeś?

  1. <?php
  2. $bg_name = mysql_fetch_row(mysql_query("SELECT `bg_name` FROM `users` WHERE id='".$matches[1]."'"));
  3. echo '<body style="background: url(images/'. $bg_name[0]. '); background-repeat:repeat-x;">';
  4. ?>


Ten post edytował Maxik 22.06.2009, 10:07:20
Go to the top of the page
+Quote Post
piotrooo89
post
Post #13


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




~Wicepsik Twoje nie zadziała do końca, tzn nie wyświetli. musisz do tego dodać mysql_result" title="Zobacz w manualu PHP" target="_manual lub np mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Wicepsik
post
Post #14





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(Maxik @ 22.06.2009, 11:06:22 ) *
LOL, Wicepsik. O mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual nie słyszałeś?

  1. <?php
  2. $bg_name = mysql_fetch_row(mysql_query("SELECT `bg_name` FROM `users` WHERE id='".$matches[1]."'"));
  3. echo '<body style="background: url(images/'. $bg_name[0]. '); background-repeat:repeat-x;">';
  4. ?>

Słyszałem o tym doskonale, ale jakoś tak uciekło (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
majestiq
post
Post #15





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


działa jak trza (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


  1. <?php
  2. $subject = $_SERVER['REQUEST_URI'];
  3. preg_match('/id=([0-9]+)/', $subject, $matches);
  4. //echo $matches[1];
  5. $bg_name = mysql_fetch_row(mysql_query("SELECT `bg_name` FROM `users` WHERE user_id='".$matches[1]."'"));
  6. echo '<body style="background: url(images/'. $bg_name[0]. '); background-repeat:repeat-x;">';
  7. ?>


Teraz brakuje mi tylko możliwości wyboru przez użytkownika za pomocącheckboxa danego tła.
Powiedzmy w tabeli 'tła' mam w kolejności od 1 do 20 zapisane nazwy danego tła (np blue.gif)

Powinna się wygenerować lista wyboru zawierająca wszystkie opcje (pd 1 do 20 lub więcej) i użytkownik zaznaczając konkretną (mozna dac tylko 1 checkboxa)
automatycznie powoduje wpis do bazy przy swoim id w polu 'bg_name' tejże nazwy.

Fajnie by było jakbyście mi jeszcze z tym pomogli, bo w sumie można próbować na różne sposoby ale jak wg was będzie najprościej i najszybciej ?

Ten post edytował batman 22.06.2009, 11:50:28
Powód edycji: proszę nie przeklinać ~batman
Go to the top of the page
+Quote Post
Wicepsik
post
Post #16





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


A jakie zapytanie już zrobiłeś do bazy danych i wyświetlanie?

Ten post edytował Wicepsik 22.06.2009, 10:31:49
Go to the top of the page
+Quote Post
majestiq
post
Post #17





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


W tabeli 'tla' (id_tla, nazwa) przechowuje dane nazwy.
Teraz próbuje je wyświetlić jako checkboxy:


  1. <?php
  2. $tlo = mysql_fetch_row(mysql_query("SELECT `name` FROM 'tlo` WHERE id_tla > 0));
  3.  
  4. echo '<form method="POST">
  5. <select name="tekst">';
  6.  
  7. x = count $tlo  // jak to zapisać ? ;)
  8.  
  9. for (i=1; y<=x i++) {
  10.  
  11. echo '<option>' .$tlo[0]. '</option>';
  12.  
  13. }
  14.  
  15. echo '</select>
  16. <br><input type="submit" value="OK">
  17. </form>';
  18. ?>



Oczywiście tak nie działa...

Ten post edytował majestiq 22.06.2009, 11:05:04
Go to the top of the page
+Quote Post
wookieb
post
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(majestiq @ 22.06.2009, 12:02:46 ) *
Oczywiście tak nie działa...


Bo oczywiście nic nie umiesz. Nawet edytor na forum pokazal ci błąd w składni.

NAWET FUNKCJI NIE UMIESZ UŻYĆ (że o zmiennych nie wspomnę)! Wracaj do żlobka i byle jakiego kursu bo zaniżasz poziom forum . ośmieszasz swoją ambicję i podkreślasz swoje lenistwo.

Powtórze na wypadek gdyby nie chciało cie sie czytac środka. WRACAJ DO KURSU PHP Temat: linkiKursy_dla_poczatkujacych

Ten post edytował wookieb 22.06.2009, 11:07:22
Go to the top of the page
+Quote Post
majestiq
post
Post #19





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


Błędów w skladni jest tu wiele, ale chodzi o samo wypiasnie wszystkich danych i możliwości postawienia przy nich checkboxa a co za tym idzie dodania odpowieniego wpisu do bazy
ten skrypt pisalem na szybko z palca...
Go to the top of the page
+Quote Post
Wicepsik
post
Post #20





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(majestiq @ 22.06.2009, 12:08:46 ) *
Błędów w skladni jest tu wiele, ale chodzi o samo wypiasnie wszystkich danych i możliwości postawienia przy nich checkboxa a co za tym idzie dodania odpowieniego wpisu do bazy
ten skrypt pisalem na szybko z palca...

To zrób powoli testując go. Testowałeś go w ogóle?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.08.2025 - 21:50