Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie częśći ciągu
Forum PHP.pl > Forum > Przedszkole
majestiq
W jaki sposób pobrać liczbę na końcu tego wyrażenia?

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

eregi questionmark.gif
wookieb
http://php.net/preg_match
A ja ci podam tylko wyrażenie
/id=[0-9]*/si
piotrooo89
czy ta liczba zawsze jest na końcu i czy zawsze odpowiada id bo może da się to prościej zrobić.
majestiq
Tak, zawsze jest na końcu i zawsze to id smile.gif
piotrooo89
jeśli link jest zawsze w takiej postaci możesz użyć explode" title="Zobacz w manualu PHP" target="_manual.
majestiq
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ę ?
Wicepsik
Albo str_replace" title="Zobacz w manualu PHP" target="_manual 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. ?>
piotrooo89
poczytaj o grupowaniu w regexp'ach. tip chodzi o nawiasy.
majestiq
  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ć ?
Wicepsik
  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.
kefirek
  1. <?php
  2. $string  = '/asc24/index.php?act=profil&id=11';
  3. echo substr(strstr($string, 'id'), 3);
  4. ?>
Maxik
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. ?>
piotrooo89
~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
Wicepsik
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 wstydnis.gif
majestiq
działa jak trza 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 ?
Wicepsik
A jakie zapytanie już zrobiłeś do bazy danych i wyświetlanie?
majestiq
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...
wookieb
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
majestiq
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...
Wicepsik
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?
piotrooo89
~Wicepsik select != checkbox to po 1.

co do tematu: wrzucasz w pętle i tyle.
majestiq
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
Wicepsik
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
wookieb
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).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.