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
piotrooo89
post
Post #21


Newsman


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




~Wicepsik select != checkbox to po 1.

co do tematu: wrzucasz w pętle i tyle.
Go to the top of the page
+Quote Post
majestiq
post
Post #22





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

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


Dobra nie ważne, skoro nawet na forum dla poczatkujacych pytanie o wcale nie taka najbanalniejsza rzecz
spotyka sie z taka krytyka to ja dziekuje za takie forum

pozdro
Go to the top of the page
+Quote Post
Wicepsik
post
Post #23





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

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


Cytat(majestiq @ 22.06.2009, 12:14:00 ) *
Dobra nie ważne, skoro nawet na forum dla poczatkujacych pytanie o wcale nie taka najbanalniejsza rzecz
spotyka sie z taka krytyka to ja dziekuje za takie forum

pozdro

Oczekujesz gotowce, a nie umiesz odróżnić checkboxa od listy.
http://www.kurshtml.boo.pl/html/pole_wyboru,formularze.html
Go to the top of the page
+Quote Post
wookieb
post
Post #24





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




Informuje cię iż jest to forum dla początkujących, którzy znają podstawy i nie są na tyle leniwi, żeby wszystko trzeba było robić za nich.
Do przedszkola nie wysyła się dzieci, które nie umieją mówić (wyjątkiem są dzieci niepełnosprawne).
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: 4.10.2025 - 04:46